假设 MySQL MyISAM 表包含 1 GB 数据和 1 GB 索引。
此外,假设在开发过程中,列和索引将非常频繁地从表中添加和删除。由于数据库的大小,使用标准的未调整的 MySQL 设置时,列/索引的创建速度很慢。
为了最大限度地减少添加新列/索引所需的时间,应该调整哪些 MySQL 服务器参数?
我相信您应该查看的关键设置是key_buffer_size
, myisam_max_sort_file_size
and myisam_sort_buffer_size
. key_buffer_size
是 MyISAM 总体上最重要的设置之一,但其他两个可能需要一些解释。
From http://dev.mysql.com/doc/refman/5.0/en/server-system-variables.html:
myisam_max_sort_file_size
临时的最大尺寸
MySQL 允许使用的文件
重新创建 MyISAM 索引时
(在 REPAIR TABLE、ALTER TABLE 期间或
加载数据文件)。如果文件大小
会大于这个值,
索引是使用键缓存创建的
相反,速度较慢。其值为
以字节为单位给出。
默认值为 2GB。如果MyISAM
索引文件超过此大小和磁盘
空间可用,增加
价值可能有助于绩效。
myisam_sort_buffer_size
缓冲区的大小是
MyISAM 索引排序时分配
在修复表期间或创建时
使用 CREATE INDEX 或 ALTER 的索引
桌子。
最大允许设置
myisam_sort_buffer_size 为 4GB。
所以基本上,如果您希望索引大于myisam_max_sort_file_size
,您可能想考虑调整一下。如果没有,则myisam_sort_buffer_size
可能值得一些关注。
请记住,在 MyISAM 表上创建索引会锁定整个表。如果您经常在大型表上执行此操作,则无论您调整多少设置,都可能会遇到一些严重的性能问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)