Mysql慢查询优化⽅法及优化原则
1、⽇期⼤⼩的⽐较,传到xml中的⽇期格式要符合'yyyy-MM-dd',这样才能⾛索引,如:'yyyy'改为'yyyy-MM-dd','yyyy-MM'改为'yyyy-MM-dd'【这样MYSQL会转换为⽇期类型】
2、条件语句中⽆论是等于、还是⼤于⼩于,WHERE左侧的条件查询字段不要使⽤函数或表达式或数学运算
3、WHERE条件语句尝试着调整字段的顺序提升查询速度,如把索引字段放在最前⾯、把查询命中率⾼的字段置前等
4、保证优化SQL前后其查询结果是⼀致的
5、在查询的时候通过将EXPLAIN命令写在查询语句前,测试语句是否有⾛索引【具体⽤法百度】
6、禁⽌使⽤SELECT * FROM操作,应只返回需要的字段,不需要的字段不要返回
7、可以尝试分解复杂的查询,在应⽤层⾯进⾏表关联,以此代替SQL层⾯的表关联
8、WHERE⼦句和ORDER BY⼦句涉及到的列建索引
9、避免在WHERE⼦句中对字段进⾏NULL判断【可以对表字段改造⼀下,字符串型字段默认值设置为空字符串,数字型字段默认值设置为0,⽇期型字段默认值设置为1990-01-01等】
10、避免在WHERE⼦句中使⽤!=或<>操作符
11、避免在WHERE⼦句中使⽤OR操作符
12、BETWEEN AND代替IN
13、LIKE '%abc%'不会⾛索引,⽽LIKE 'abc%'会⾛索引
14、避免对字段进⾏表达式操作
15、避免对字段进⾏函数操作
16、GROUP BY操作默认会对GROUP BY后⾯的字段进⾏排序,如果你的程序不需要排序,可在GROUP BY语句后⾯加上ORDER BY NULL去除排序
17、如果是数值型字段,则尽量设计为数值型字段,不要为了⽅便、为了偷懒⽽给后⾯维护的同事埋坑
18、表中所有字段设计为NOT NULL
19、返回条数固定时,⽤LIMIT语句限制返回记录的条数,如只需要⼀条记录,或肯定只有⼀条记录符合条件,那建议加
上LIMIT 1
20、对于枚举类型的字段【即有固定罗列值的字段】,建议使⽤ENUM⽽不是VARCHAR,如性别、星期、类型、类别等
21、对于存IP地址的字段设计为成UNSIGNED INT型
22、避免在SQL中使⽤NOW()、CURDATE()、RAND()函数【因为这种⽅式会导致MYSQL⽆法使⽤SQL缓存】,可以转化为通过传⼊参数的⽅式
23、对于统计类的查询【如查询连续⼏个⽉的数据总量,或查询同⽐、环⽐等】,可以通过定时查询并统计到统计表的⽅式提⾼查询速度
免安装版的mysql下载总结
以上所述是⼩编给⼤家介绍的Mysql慢查询优化⽅法及优化原则 ,希望对⼤家有所帮助,如果⼤家有任何疑问请给我留⾔,⼩编会及时回复⼤家的。在此也⾮常感谢⼤家对⽹站的⽀持!
如果你觉得本⽂对你有帮助,欢迎转载,烦请注明出处,谢谢!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论