mysql性能优化总结(持续更新):
1.尽可能避免模糊值查询,即!=、<>;使用like避免使用左侧通配符;避免对查询字段使用表达式;以上均会导致mysql选择全表查询而忽略索引
2.慎用使用or 和 in,前者若存在字段无索引,将会导致索引失效。in在查询性能上高于or,因为in采用二分查询,时间复杂度为O(logn)而or的为O(n)。条件列表数值连续的情况下,使用between比in效率更高。
3.能用where就避免使用having,where运行顺序在having之前,having与group by搭配使用,用于过滤结果集
4.特殊情况下可强制使用索引 force index
5.对非全字段更新的数据,不应贪方便全字段更新,消耗性能,需要更新哪个字段就更新哪个字段。
6.切记:进行查询,除非表字段都需查出来,否则不应该全表查询。
7.对于多数据多表连表查询,若情况允许先分页再连表,避免过多逻辑操作。
8.union 会将查询数据组合在一起,过滤重复数据,union all 则组合在一起,不会进行过滤,在确定连表数据不存在重复数据的时候,应选择union all。
9.对使用索引的表进行数据更改,可根据实际需求使用optimize table优化磁盘空间资源(optimize table会进行锁表操作,故应选择业务空闲时间操作)
mysql性能优化总结(持续更新)
最新推荐文章于 2022-03-17 14:30:43 发布