查询优化
-
尽量全值匹配
- 尽量把索引里所有的列都匹配上(where)
-
最佳左侧原则
- 如果索引了多列,要遵守最左前缀法则。指的是查询从索引的最左前列开始并且不跳过索引中的列
-
不在索引列上做任何操作(计算、函数、类型转换),会导致索引失效而转向全表扫描
-
减少隐形的类型转换,比如varchar转换成int
-
范围条件放在最后,存储引擎不能使用索引中范围条件右边的列
-
尽量使用覆盖索引,减少select *
-
MySQL在使用不等于(!=或<>)的时候无法使用索引,会导致全表扫描
-
like以通配符开头会导致索引失效
-
字符串不加单引号会导致索引失效
-
or改成union效率更高
插入insert优化
- 提交前关闭自动提交
- 尽量使用批量insert语句
- 可以使用MyISAM存储引擎
- 使用LOAD DATA INFILE,比一般的insert快20倍
参考链接
MySQL 索引原理及设计:
https://icell.io/how-mysql-index-works/?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io
网友评论