`
frank1998819
  • 浏览: 732059 次
  • 性别: Icon_minigender_1
  • 来自: 南京
文章分类
社区版块
存档分类

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、对于统计类的查询【如查询连续几个月的数据总量,或查询同比、环比等】,可以通过定时查询并统计到统计表的方式提高查询速度

【罗 14:8】 我们若活着,是为主而活;若死了,是为主而死。所以我们或活或死,总是主的人。

 

分享到:
评论

相关推荐

    Mysql慢查询优化方法及优化原则

    主要介绍了Mysql慢查询优化方法及优化原则,本文给大家介绍的非常详细,具有一定的参考借鉴价值 ,需要的朋友可以参考下

    mysql查询优化.

    1、理解MYSQL的Query Optimizer 2、Query语句优化基本思路和原则 3、充分利用Explain 和 Profiling 4、合理设计并利用索引 5、order by、group by 和 DISTINCT优化 6、小结

    高并发基础之-MySql性能优化.pdf

    掌握优化查询的方法 掌握优化数据库结构的方法 掌握优化 MySQL 服务器的方法 2. 什么是优化? 合理安排资源、调整系统参数使 MySQL 运行更快、更节省资源。 优化是多方面的,包括查询优化、更新优化、服务器优化...

    mysql_Query优化

    讲述MySQL数据库查询优化的方法、原则和技巧,深入认识MySQL的体系结构

    MySQL语句优化的原则

    合理的索引设计要建立在对各种查询的分析和预测上。一般来说:  a.有大量重复值、且经常有范围查询( &gt; ,,&gt; =,)和order by、group by发生的列,可考虑建立群集索引;  b.经常同时存取多列,且每列都含有重复值...

    mysql5.6性能优化

    合理安排资源、调整系统参数使MySQL运行更快、更节省资源。 优化是多方面的,包括查询、更新、服务器等。 原则:减少系统瓶颈,减少资源占用,增加系统的反应速度。

    MySQL查询优化.rar

    MySQL 查询优化 SQL诊断调优原则、原理及思路

    MySQL官方文档优化原则部分

    MySQL官方文档翻译,包括一些执行计划的用法,Order By优化等等

    MySQL数据库设计、优化.pptx

    持续写入,避免瞬间压力 超长text/blob进行垂直拆分,并先行压缩 冷热数据进行水平拆分,LRU原则 快速更新大数据表禁止直接运行count(*)统计 MySQL数据库设计、优化全文共24页,当前为第3页。 规范 基础规范 单表行...

    mysql索引优化分享

    关于mysql索引一些优化介绍与创建原则,还有对order by排序的算法的介绍等等

    mysql,查询,索引

    8、慢查询优化 9、建索引的⼏⼤原则 1、最左前缀匹配原则 2、=和in可以乱序 3、尽量选择区分度⾼的列作为索引 4、索引列不能参与计算,保持列“⼲净” 5、尽量的扩展索引,不要新建索引 6、注意关联字段类型...

    mysql优化10原则

    mysql优化10原则:使用JOIN时,应该用小结果集驱动大结果集,同时把复杂的JOIN查询拆分成多个Query

    【MySQL】MySQL优化原则

    这条优化原则要求查询中按执行顺序尽量用小数据集驱动大数据集。 示例1: 在使用in条件时,先执行in条件子句,此时由于B表先查,A表后查,B表的数据集应小于A表的数据集。 B表数据集小于A表数据集时,用in优于...

    mysql数据库设计原则

    mysql数据库设计原则 索引使用,语句优化等

    MySQL查询优化的5个实用技巧

    本文列举出五个MySQL查询优化的方法,当然,优化的方法还有很多。 1、优化数据类型 MySQL中数据类型有多种,如果你是一名DBA,正在按照优化的原则对数据类型进行严格的检查,但开发人员可能会选择他们认为最简单的...

    mysql-实用-索引失效和优化原则

    mysql-实用-索引失效和优化原则

    2021年MySQL高级教程视频.rar

    08.MySQL高级内存优化优化原则.avi 09.MySQL高级内存优化MyISAM内存优化.avi 10.MySQL高级内存优化InnoDB内存优化.avi 11.MySQL高级并发参数调整.avi 12.MySQL高级锁锁的概述及分类.avi 13.MySQL高级锁MySQL对锁的...

    MYSQL—查询优化的基本思路和原则

    一、常用优化的原则 永远用小结果集驱动大结果集 尽可能在索引中完成排序 只取出自己需要的列 仅仅使用最有效的过滤条件 尽可能避免复杂的join和子查询 多使用profile 1. 在这里需要严格的说是小结果集驱动大结果集...

Global site tag (gtag.js) - Google Analytics