mysql优化非常大的表

时间:2011-10-21 05:31:52

标签: mysql optimization myisam

我有一个大约15Gb的MyIsam表。 我删除了大约一半的行,删除查询大约需要10个小时。 现在我害怕开始optimize table,因为我不知道要花多长时间。 如果您有这么大的桌子的经验,请与我分享。

PS删除过程后,查询“select * from table limit 0,30”需要数年时间。 optimize table会帮忙吗?

需要超过10个小时吗?

如果我中断“优化表”查询,会发生什么?

1 个答案:

答案 0 :(得分:4)

优化表将有助于减小大小(索引将被重新计算等) 如果删除了一半的行,则应优先选择表格。在我的公司,我们有大约2-3 GB的表。 Optmize并不像删除那么多。

如果您希望查询更快,请优化您的表格。



从大表中删除许多行的另一个提示: 您可以不使用任何删除命令来执行此操作。     

选择不要删除的行到与原始表格具有相同结构的空表中:

  

INSERT INTO t_copy SELECT * FROM t WHERE ...;

使用RENAME TABLE以原子方式移动原始表格并将副本重命名为原始名称:

  

RENAME TABLE t TO t_old,t_copy TO t;

删除原始表格:

  

DROP TABLE t_old;

相关问题