首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >mysql join和sort的buffer

mysql join和sort的buffer

作者头像
dys
发布于 2018-04-02 17:19:26
发布于 2018-04-02 17:19:26
1.1K0
举报
文章被收录于专栏:性能与架构性能与架构

参数查看命令

SELECT @@join_buffer_size;

SELECT @@sort_buffer_size;

join_buffer_size

当join类型是ALL,index,rang或者Index_merge的时候就是在使用buffer

参与join的每一个表都需要一个join buffer

系统默认值是128KB

sort_buffer_size

sort buffer是系统中对数据进行排序的时候用到的Buffer

sort buffer同样是针对单个线程的,所以当多个线程同时进行排序的时候,系统中就会出现多个sort buffer

系统默认大小时2MB

优化建议

可以适当增大 join_buffer_size 到 1MB 左右,如果内存充足可以设置为2MB

对于 sort_buffer_size 来说,一般设置为 4MB 可以满足大多数需求

如果应用中的排序都比较大,内存充足却并发量不是特别大的时候,也可以继续增大sort buffer size的设置

要注意的是,每一个线程都会创建自己独立的buffer而不是整个系统共享,所以设置的值过大会造成系统内存不足

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2015-09-25,如有侵权请联系 cloudcommunity@tencent.com 删除
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档