我有一张包含1,000,000条记录的表格,而且我正在运行一条删除约700k行的语句。自动增量指数当然仍然是1,000,001。之后的最高主键,例如40,000。
在如此大量删除行之后,我应该手动将索引设置回40,001还是以任何方式优化表格?或者MySQL在插入新行并在之后的select语句中使用索引(速度方面)时是否关心这个巨大的差距?
答案 0 :(得分:2)
MySQL manual说:
如果您使用OPTIMIZE TABLE 删除了表的大部分内容 或者如果你对a做了很多改动 具有可变长度行的表
但是不要重置主键,它可能搞砸了。 INT数据类型(可能)有足够的空间从1M增长。
就查询速度而言,指数值是1 000 000还是1 000 000 000无关紧要。
答案 1 :(得分:1)
之后使用OPTIMIZE TABLE可帮助MySQL确定执行查询的最佳/最快速度,例如:使用索引或只是表扫描?它使用所谓的统计数据来执行此操作,因此调用OPTIMIZE TABLE基本上会给出一个提示,表明您已经进行了重大更改。