sql优化

1、建立索引提高查询速度,但是添加或修改数据时有额外的工作重新建立索引。索引数不要超过字段的20%,不在索引列计算,会导致索引失效

2、任何在where子句中使用is nullis not null的语句优化器是不允许使用索引的。

3、通配符(%)在搜寻词首出现,不使用索引。通配符如此使用会降低查询速度。然而当通配符出现在字符串其他位置时,优化器就能利用索引。

4、任何在Order by语句的非索引项或者有计算表达式都将降低查询

5、explain分析sql语句的性能。

6、主键,自增,不修改(INNODB

7、Sql语句尽量简单,一条大sql拆分成多个sql

8、保持事务短小,一个大事务拆分多个小事务 

9、少用存储过程、触发器、mysql函数

10、尽量不用select *,只取需要的列

11、同一字段or改成in(字数建议少于200

12、不同字段or改成union 

13、避免负向查询,not!=<>, !>!<not existnot innot like 

14、Limitmnm越大越慢 

15、数据不去重,union all 优于union 

16、高并发DB不建议2个表以上的join 

17、同数据类型比较,字符对字符、数字对数字,content =1 content=’1’

18、 同一字符UTF8,校对规则utf8_general_ci,乱码set name UTF8 

19、库表名大小写敏感,统一小写,字段名大小写不敏感。(windows下都不区别) 

20、避免用Mysql保留字,加``

21、Show profileshow processlistshow query_response_timemysqlslamysqldumpslowexplain

22、Select sql_no_cache * from

原文地址:https://www.cnblogs.com/you-jia/p/4244252.html