mysql优化基础之参数调节
一 简介:我们谈谈如何调节mysql参数加速查询
二 相关参数
1 排序参数
sort_buffer_size 当出现order by时会利用到这个参数,当数据量超过内存参数时,会利用磁盘的临时文件进行外部排序.
知识点补充:
1 联合索引的建立是按照最左原则,即首先按照第一列的值建立,当第一列的值相同是,才会进行第二列的排序,依次类推.
2 mysql8.0的跳跃索引可以按照党第一列值相同时,将第二列进行反转排序存储,所以能实现反向排序
3 普通的全表select order by并不会进行排序,而只是根据联合索引顺序检索
2 临时表参数
tmp_table_size 当出现以下情况时可能会用到(1 select子查询 2 join 多表 3 uniob all 4 group by),当数据量超过内存参数时,会用到磁盘的临时文件进行存储操作
知识点补充
1 explain下出现using tempoary时代表用到了临时内存,但是并不一定代表用到了临时文件,这点要注意
2 using tempoary 通常伴随着 using filesort
3 联表参数
join_buffer_size 通常使用出现在 BNL优化时,第一张表将数据分批存入join_buffer中 然后与第二张表关联
知识点补充
1 通过explain join是ALL,index,rang或者Index_merge的时候会用到join_buffer
三 参数推荐设置
join_buffer_size 2M-4M
sort_buffer_size 2M
tmp_table_size 16-256M
四 特别注意
1 本文所提到的变量都是session独享的,所以如果一旦并发量增大,线程所占用的内存会增加.这些内存是不在bp里控制的
2 根据不同的select利用到的变量进行调节,有时候能加速你的查询效率