Mysql:优化索引
我安装了MySQL Tuner,这是报告的结果:Mysql:优化索引,mysql,join,query-optimization,Mysql,Join,Query Optimization,我安装了MySQL Tuner,这是报告的结果: 启用慢速查询日志以排除错误查询的故障 调整联接查询以始终使用索引 因此,我启用了慢速查询日志,它报告了此类查询: 挑选 u、 PIN、u.name、u.lastname、u.id\u国家、t1.id\u用户列表、计数(t2.id\u用户列表) 与触点AS t1的q1相同,触点AS t2,用户为u,其中t1.id\u user=N和 t2.id\u user=t1.id\u user\u列表和 u、 id\u user=t1.id\u user
- 启用慢速查询日志以排除错误查询的故障
- 调整联接查询以始终使用索引
- id_联系人(内部/主要索引)
- id_用户(整数/索引)
- id\u用户\u列表(int/index)
- id_用户(int/主索引)
- 名称(varchar)
- lastname(varchar)
- PIN(varchar)
- id_国家(国际)
- 城市(瓦查尔)
- 性别(1或2)
- 飞行图(1或0)
- flg_隐藏(1或0)
- flg_ban(1或0)
我是否也应该为查询中使用的所有varchar(WHERE和ORDER)编制索引?感谢您的帮助。您应该运行explain analyze,更好地了解查询中最昂贵的部分,并围绕这些字段进行索引或优化 例如:
您应该优先考虑那些运行频率最高、速度最慢的查询我认为您只需要
解释
,而不是解释分析
。
explain analyze SELECT * FROM user WHERE city LIKE 'S' AND gender = N AND flg_pic = N AND flg_hidden = N AND flg_ban = N AND id_user != N ORDER BY id_user DESC LIMIT N,N