码迷,mamicode.com
首页 > 数据库 > 详细

mysql常见优化手段

时间:2020-12-22 12:25:55      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:cab   需要   语句   word   dex   过多   方式   between   使用   

  • SQL语句中IN包含的值不应过多,不能超过200个,200个以内查询优化器计算成本时比较精准,超过200个是估算的成本,另外建议能用between就不要用in,这样就可以使用range索引了。
  • SELECT语句务必指明字段名称:SELECT * 增加很多不必要的消耗(cpu、io、内存、网络带宽);增加了使用覆盖索引的可能性;当表结构发生改变时,前断也需要更新。所以要求直接在select后面接上字段名。
  • 当只需要一条数据的时候,使用limit 1
  • 排序时注意是否能用到索引
  • 使用or时如果没有用到索引,可以改为union all 或者union
  • 如果in不能用到索引,可以改成exists看是否能用到索引
  • 使用合理的分页方式以提高分页的效率
  • 不建议使用%前缀模糊查询
  • 避免在where子句中对字段进行表达式操作
  • 避免隐式类型转换
  • 对于联合索引来说,要遵守最左前缀法则
  • 必要时可以使用force index来强制查询走某个索引
  • 对于联合索引来说,如果存在范围查询,比如between,>,<等条件时,会造成后面的索引字段失效。
  • 尽量使用inner join,避免left join,让查询优化器来自动选择小表作为驱动表
  • 必要时刻可以使用straight_join来指定驱动表,前提条件是本身是inner join

mysql常见优化手段

标签:cab   需要   语句   word   dex   过多   方式   between   使用   

原文地址:https://www.cnblogs.com/lyang4-09/p/14150392.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!