sort_buffer_size - xiaoboluo768/qianjinliangfang GitHub Wiki

  • 用于存放排序数据的缓存大小,超过这个大小就会使用文件排序。如果通过show global status看到Sort_merge_passes的值很大,可以考虑通过适当调整sort_buffer_size的值来增大排序缓存区(另外增加max_sort_length参数的值时可能也需要增加sort_buffer_size参数的值),改善带有order by和group by子句的sql性能。sort_buffer_size是每线程独占分配(每个执行排序操作的会话才会分配),不要设置过大,最好是设置一个较小的全局值,如果碰到较大表做排序,就对这个session设置较大的值
    • 该参数适通用于所有存储引擎,最小值必须要足够大,至少要在排序缓冲中能够存放15个排序元组
    • 5.6.4之前的版本总是在有排序操作时直接分配整个排序缓冲给会话,从5.6.4版本开始优化器尝试计算排序数据的大小来分配排序缓冲的大小给会话。
    • 在linux上,大于256K或者2M的排序缓冲大小可能显著降低内存分配的性能
    • 全局变量,会话变量,动态变量,默认值在不同版本中频繁变化,大于5.6.4版本号的64位版本默认值为256K,整型值。64位平台取值范围为:32768~18446744073709551615字节

上一篇:read_buffer_size | 下一篇:tmp_table_size