【发布时间】:2011-06-28 11:00:29
【问题描述】:
我正在禁用键;批量加载数据;然后在 myisam 表上重新构建索引。然而, 最后一部分需要永远,因为它是
使用 keycache 修复而不是按排序修复
这是我的变量,我的表中有大约 1 亿条记录,每一行有一个整数主键、一个 smallint 列和一个 varchar(256) 列。我的 myisam_max_sort_file_size 是 500G,我怀疑索引的最大大小是否会接近这个值。
我的盒子有 8 GB 的 RAM 和 250GB 的存储空间,为什么 MYSQL 不使用带有排序的修复?
【问题讨论】:
-
可能的欺骗。在此处查看 MarkR 的答案:stackoverflow.com/questions/1067367/…
-
我已经阅读了另一个线程,它对我没有帮助。我在 /tmp 中有足够的磁盘空间,这是我的 mysql 正在使用的空间
-
桌子有多大?如果您增加 myisam_sort_buffer_size 的大小,它可能会有所帮助。
-
该表有 1 亿行,但我将 myisam_sort_buffer_size 设置为 4G。 myisam_max_sort_file_size 是 500G 应该够大了
-
显然 myisam_sort_buffer_size = 4G 是不够的,我需要将其设置为 10G,然后启用密钥将使用修复和排序。这让我很困惑!