参数查看命令
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而不是整个系统共享,所以设置的值过大会造成系统内存不足