赞
踩
如果是联合索引,尽量在联合索引中的字段都能用到。
如果索引了过多列,要遵守最左前缀法则。指的是查询从索引的最左前列并且不跳过索引中的列。
当把最左边的索引 code 去掉 就留name 后 索引失效
不在索引列上做任何操作(计算,函数,(自动 or 手动)类型转换),会导致索引失效而全表扫描。
存储引擎不能使用索引中范围条件右边的列。如果使用了范围查询,会导致范围查询以后的索引失效。
尽量使用覆盖索引(只访问索引的查询(索引列和查询列一致)),减少 select *
mysql 在使用不等于(!= 或者 <>) 的时候无法使用索引会导致全表扫描。
如果业务中需要不等于,则可以使用覆盖索引。
注意 null , not null 对索引的可能影响。
解决:可以使用覆盖索引
在设计表中字段不为null时,sql语句查询为 is null 不会覆盖索引(5.6以后)
like 以通配符开头(%abc) mysql 索引失效会变成全表扫描
解决:使用覆盖索引
索引已经维护了顺序,这个时候,排序的时候直接就用索引的顺序就好了,如果使用DESC 那么需要自己排序,会大大浪费时间。
LOAD DATA INFLIE :比一般的insert 快 20 倍。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。