当前位置:   article > 正文

Mysql优化_mysql 优化

mysql 优化
查询优化
尽量全值匹配

如果是联合索引,尽量在联合索引中的字段都能用到。
在这里插入图片描述
在这里插入图片描述

最佳左前缀法则(让索引不失效的一个法则)

如果索引了过多列,要遵守最左前缀法则。指的是查询从索引的最左前列并且不跳过索引中的列。

当把最左边的索引 code 去掉 就留name 后 索引失效
在这里插入图片描述

不要在索引上做任何操作

不在索引列上做任何操作(计算,函数,(自动 or 手动)类型转换),会导致索引失效而全表扫描。

在这里插入图片描述

范围条件放最后

存储引擎不能使用索引中范围条件右边的列。如果使用了范围查询,会导致范围查询以后的索引失效。

覆盖索引要尽量使用

尽量使用覆盖索引(只访问索引的查询(索引列和查询列一致)),减少 select *

不等于要慎用

mysql 在使用不等于(!= 或者 <>) 的时候无法使用索引会导致全表扫描。
在这里插入图片描述
在这里插入图片描述
如果业务中需要不等于,则可以使用覆盖索引。
在这里插入图片描述

Null/Not 有影响

注意 null , not null 对索引的可能影响。
在这里插入图片描述
解决:可以使用覆盖索引
在这里插入图片描述
在设计表中字段不为null时,sql语句查询为 is null 不会覆盖索引(5.6以后)

like 查询

like 以通配符开头(%abc) mysql 索引失效会变成全表扫描
在这里插入图片描述
在这里插入图片描述
解决:使用覆盖索引
在这里插入图片描述

字符串要加引号

在这里插入图片描述
在这里插入图片描述

or 改 union 效率高
DESC 排序 取消 使用java 进行排序

索引已经维护了顺序,这个时候,排序的时候直接就用索引的顺序就好了,如果使用DESC 那么需要自己排序,会大大浪费时间。

insert 优化
  • 提交前关闭自动提交
  • 尽量使用批量 insert 语句 (使用java 动态拼接)
  • 可以使用MyISAM 存储引擎。
批量导入

LOAD DATA INFLIE :比一般的insert 快 20 倍。

学习年限不足,知识过浅,说的不对请见谅。

世界上有10种人,一种是懂二进制的,一种是不懂二进制的。

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号