sqlMessage: 'Out of sort memory, consider increasing server sort buffer size'

mysql报了这个错误:sqlMessage: 'Out of sort memory, consider increasing server sort buffer size'。它表示 MySQL 服务器在尝试执行排序操作时已经耗尽了内存,建议增加排序缓冲区的大小来解决问题。排序缓冲区是 MySQL 使用的内存区域,用于处理涉及对大型结果集进行排序的查询。当排序缓冲区不足以处理特定查询的排序需求时,可能会遇到这个错误。

修改起来也比较简单,只需要修改 MySQL 配置文件(通常是 my.cnf 或 my.ini,具体取决于操作系统)并在 [mysqld] 部分中添加或修改 sort_buffer_size 选项来调整排序缓冲区的大小。以下是一个设置的示例:

[mysqld]
sort_buffer_size = 512K

由于我使用的时Linux系统,mysql使用的时yum安装的,配置文件在:/etc/my.cnf,当然也可以在  /etc/my.cnf.d/mysql-server.cnf 中修改。

vim  /etc/my.cnf.d/mysql-server.cnf

修改 MySQL 配置文件后,你需要重新启动 MySQL 服务器以使更改生效。

systemctl restart mysqld


修改前后,你可能需要查看当前设置的值是多少,可以登录 mysql,执行sql语句:

SHOW VARIABLES LIKE 'sort_buffer_size';

mysql 8 默认好像是 262144,也就是256K,可以适当修改大一点。

当然,这个值也不是越大越好,尽量不要超过2M

标签: mysql 缓冲区
微信 遇到疑问可加微信进行反映