当我运行mysql的select语句,它需要很长的,因为我之前已经删除了一个非常大的行数。

有一种方法为表,开始从底部扫描,如从顶部而不是?

有帮助吗?

解决方案

一个查询不扫描以任何特定次序表;它可能这样做,如果它发生在顺序遍历一个特定的索引(例如,范围扫描),这可能是因为你使用的ORDER BY。

数据库只是不工作这样。你不能指望他们在这样的行为。

如果你正在做一个全表扫描,预计需要一段时间,特别是如果您最近删除了很多行。然而,这将需要更长的时间,如果你有大量的行。

确保该查询使用的索引代替。在外貌解释计划,并确保它使用索引。

其他提示

也许你需要为你的表的附加指标。它也不会伤害到问题OPTIMIZE TABLE偶尔ANALYZE TABLE。查询性能不应当由具有删除的行,即使大量行的影响,只要你有合适的索引。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top