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慢查询优化方法及优化原则 ,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
更新日志
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]