删除多行后,我应该重置表索引/优化吗?

时间:2011-02-04 14:39:03

标签: mysql optimization indexing sql-delete

我有一张包含1,000,000条记录的表格,而且我正在运行一条删除约700k行的语句。自动增量指数当然仍然是1,000,001。之后的最高主键,例如40,000。

在如此大量删除行之后,我应该手动将索引设置回40,001还是以任何方式优化表格?或者MySQL在插入新行并在之后的select语句中使用索引(速度方面)时是否关心这个巨大的差距?

2 个答案:

答案 0 :(得分:2)

MySQL manual说:

  

如果您使用OPTIMIZE TABLE   删除了表的大部分内容   或者如果你对a做了很多改动   具有可变长度行的表

但是不要重置主键,它可能搞砸了。 INT数据类型(可能)有足够的空间从1M增长。

就查询速度而言,指数值是1 000 000还是1 000 000 000无关紧要。

答案 1 :(得分:1)

之后使用OPTIMIZE TABLE可帮助MySQL确定执行查询的最佳/最快速度,例如:使用索引或只是表扫描?它使用所谓的统计数据来执行此操作,因此调用OPTIMIZE TABLE基本上会给出一个提示,表明您已经进行了重大更改。