如何解决Mysql:优化索引
| 我安装了MySQL Tuner,这是该报告的结果: 启用慢查询日志以排除错误查询 调整联接查询以始终利用索引 因此,我启用了慢查询日志,并报告了以下类型的查询: 选择 u.PIN,u.name,u.lastname,u.id_country,t1.id_user_list,COUNT(t2.id_user_list) AS q1从联系人AS t1,联系AS t2,用户AS u WHERE t1.id_user = N AND t2.id_user = t1.id_user_list AND u.id_user = t1.id_user_list GROUP BY t1.id_user_list ORDER BY名称,姓氏 和... 选择*来自用户所在的城市,例如\'S \' AND性别= N AND flg_pic = N AND flg_hidden = N AND flg_ban = N AND id_user!= N ORDER BY id_user DESC 极限N,N 我只需要一些有关优化表的帮助,它们是: 联系 id_contact(int /主索引) id_user(整数/索引) id_user_list(整数/索引) 用户 id_user(整数/主索引) 名称(varchar) 姓氏(varchar) 密码(varchar) id_country(int) 城市(varchar) 性别(1或2) flg_pic(1或0) flg_hidden(1或0) flg_ban(1或0) 我是否也应该为查询中使用的所有varchar编制索引(WHERE和ORDER)?谢谢你的帮助。解决方法
您应该运行解释分析以更好地了解查询中最昂贵的部分,然后围绕这些字段建立索引或进行优化。
例如:
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
并且您应该对那些最频繁,最慢运行的慢速查询进行优先级排序
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。