2016-11-30 61 views
0

如果我在SELECT..WHERE语句之前向表中添加索引并将它们放在INSERT语句之前,它被认为是MySQL的最佳实践或整体性能提升?在SELECT WHERE之前添加表索引并在INSERT之前删除它们

+2

你一定是在开玩笑!为已有数据的表创建索引时,数据库软件会扫描整个表以实际构建索引。那么,你会如何回答你自己的问题? – FDavidov

+0

一般来说,你不会这样做,但是索引也会有插入性能的影响,所以如果你做的非常大(不管是什么意思)大容量插入,当没有选择时,然后删除索引并重新创建它们可能会提高吞吐量插入。 –

回答

2

即使答案是显而易见的:前SELECT ... WHERE语句添加一个索引到表之前INSERT声明投下他们是非常糟糕实践。我很确定这对每个数据库都适用。

您将在每个SELECT上为表中的每一行创建索引条目。当插入或更新新行时,创建/更新索引条目的成本要高得多。

+0

谢谢您的详细解答 –

相关问题