【问题标题】:mysql optimize very large tablemysql优化非常大的表
【发布时间】:2011-10-21 05:31:51
【问题描述】:
我有一个大约 15Gb 的 MyIsam 表。
我已经从中删除了大约一半的行,删除查询大约需要 10 个小时。
现在我不敢开始optimize table,因为我不知道要花多长时间。
如果你有过这么大桌子的经验,可以和我分享一下吗。
PS 在删除过程之后,查询“select * from table limit 0,30”需要数年时间。
optimize table 有帮助吗?
需要10多个小时吗?
如果我中断“优化表”查询会发生什么?
【问题讨论】:
标签:
mysql
optimization
myisam
【解决方案1】:
优化表将有助于减小大小(索引将被重新计算等)
如果你删除了一半的行,你应该优化你的表。在我的公司,我们有大约 2-3 GB 的表格。 Optmize 不像删除那么重要。
如果您希望查询更快,请优化您的表。
从大表中删除许多行的另一个提示:
您可以在不使用任何删除命令的情况下执行此操作。
选择不删除的行到与原表结构相同的空表中:
INSERT INTO t_copy SELECT * FROM t WHERE ... ;
使用 RENAME TABLE 以原子方式将原始表移开,并将副本重命名为原始名称:
重命名表 t 到 t_old,t_copy 到 t;
删除原表:
删除表 t_old;