内存是影响数据库性能的重要资源,也是MySQL性能优化的重要方向。
show global status
看到sort_merge_passes
的值很大,可以考虑通过调整参数sort_buffer_size
的值来增大排序缓存区,以改善带有order by
子句或group
子句SQl的性能。join_buffer_size
的值来改善性能。sort buffer
和join buffer
都是面向客户服务线程分配的,如果设置过大,可能会导致内存交换。尤其是join buffer,如果是多表关联的复杂查询,还可能会分配多个join buffer。因此,最好的策略是设置较小的全局joinbuffersize,而对需要做复杂连接操作的session单独设置较大的joinbuffersize。