我有一个包含1,000,000条记录的表,并且我正在运行一条删除大约700k行的语句。自动增量索引当然仍然是1,000,001。之后的最高主键,例如40,000。
在如此大量的行删除之后,我应该手动将索引设置回40,001还是以任何方式优化表?或者,在插入新行和随后在select语句中使用索引时(就速度而言),MySQL不关心这种巨大的差距吗?
发布于 2011-02-04 22:43:09
MySQL manual说:
如果删除了表的大部分,或者对具有可变长度行的表进行了多次更改,则应使用
OPTIMIZE TABLE
但是不要重置主键,它会把事情搞乱。INT数据类型(大概)在1M的基础上还有很大的增长空间。
在查询速度方面,索引值是1000000还是1000000000无关紧要。
发布于 2011-02-04 22:47:31
之后使用优化表可以帮助MySQL确定如何以最佳/最快的方式执行查询,例如使用索引还是仅使用表扫描?它使用名为Statistics的东西来完成此操作,因此调用OPTIMIZE TABLE基本上就是给它一个提示,表明您已经做出了重大更改。
https://stackoverflow.com/questions/4899218
复制相似问题