金三银九,虽然收到了疫情的冲击。但对于即将踏入社会的我们来说很重要的一段时间。在最近准备面试的过程当中发现,其实对于业务系统来说。Mysql的线上性能调优经验又是非常被看重的一件事情。那么结合我在研究生期间的工作和实习经历来说,对于Mysql的线上调优工作做了一下几个方面的总结,希望能够帮助到所有有需要的同学。在这个不一样的烟花三月当中,一起加油。
关于Mysql调优,可能大的思路我们可以主要分为以下几个部分:索引,性能抖动,长事务带来的影响,大表的连接查询优化这几个方面,今天就来分享以下一些日常生活当中积累的一些思路和原理。
索引
说起索引,我们首先想到的就是添加索引能够加快我们的查询,提高服务的能力。但是在索引调优过程中,我们又需要着重注意以下几个方面的问题:1.创建什么类型的索引?2.如果发现优化器没有选择指定的索引,该如何优化?
创建索引
覆盖索引
优点一:避免回表
覆盖索引的含义是索引项上包含了查询的全部内容。我们知道,在创建一个普通的二级索引的时候,底层的索引节点上只包含了索引字段和id,如果需要其他的数据,我们就需要根据id进行回表操作。这可能就会带来额外的磁盘IO开销。而如果使用覆盖索引,我们可以有效的避免回表操作。初次之外,Mysql5.6之后对覆盖索引进行了进一步的优化,即推出了索引下推功能,支持