Mysql索引优化在工作中的经验总结

随心而论:

无论作为研发或者是运维人员,对于数据库的优化接触最多的应该是对于索引的优化。而像分库分表,引入缓存等常规操作,个人认为更多的是架构设计层面的拓展。在本文中就不对这类知识进行展开了。

  • 对于百万级别的表基本都可以通过索引优化解决性能问题,如果解决不了那么你需要加大一下MySQL的内存空间,让合理优化后的索引能够顺利加载进内存后。基本也可以解决!
  • 你可以选择相信mysql的性能,我们尝试过百万级数据的表,只利用2C4G的性能规格依旧可以运行良好。

Explain解释内容说明:

 

索引基本知识:

###那些情况下不会走索引
##like前后都是%%
select * from T where name like %xyzbeta%

##where条件中字段参与了函数计算
select * from T where age+10 > 20;

##where多个条件使用or关联(除非按照顺序每个条件字段都存在联合索引)
select * from T where A=1 or B =2

优化经验分享:

1、当你的查询条件是时间,而主键是自增模式的情况下。如果对ID做倒序排序存在慢查询,那么你可以试试改为直接使用时间做排序条件。

#原SQL
select * from order where order_date < "2021-09-06" order by id desc;
#尝试优化为
select * from order where order_date < "2021-09-06" order by order_date desc;

实战案例演示:

本文系作者 @ 原创发布在 维简网。未经许可,禁止转载。

喜欢()
评论 (0)

请登录以参与评论。

现在登录…
热门搜索
16 文章
0 评论
20 喜欢
Top