【发布时间】:2023-03-29 17:00:02
【问题描述】:
您好,我正在构建一个 Rails 应用程序,我导入了大量数据并插入到数据库中。有些表没问题,有些表有一些错误,表明内存不足。
SQL 错误
Mysql2::Error: Out of sort memory, consider increasing server sort buffer size
如何使用docker-compose.yml 命令增加服务器排序缓冲区大小?
我试过这个:
version: '3'
services:
db:
image: mysql:latest
command:
- --default-authentication-plugin=mysql_native_password
- --innodb-buffer-pool-size=402653184
我确实添加了这个命令:
--innodb-buffer-pool-size=402653184
但我仍然收到内存不足的相同错误。有没有办法使用docker-compose.yml增加缓冲区大小
【问题讨论】:
-
我已经更新了我的帖子,我正在使用 docker 作为我的环境设置。
-
您的缓冲池大小很小,但它是一个固定的全局大小,并且错误与需要增加以完成查询的连接/会话缓冲区有关。虽然可以全局设置
-- sort_buffer_size=XXXX,但这将转化为每个连接获得这个增加的大小可能会解决您的问题,它也可能在映射到正在执行的 SQL 查询的表上正确索引将消除对此的需要并进行查询快点。您能否说明导致此错误的 SQL 是什么以及相关人员的SHOW CREATE TABLE {tablename}。 -
如何在
docker-compose.yml中设置sort_buffer_size=XXXX?可以这样做sort_buffer_size=1G吗? @danblack
标签: mysql docker docker-compose mysql-workbench