2016-11-30 67 views
0

如果我在SELECT..WHERE語句之前向表中添加索引並將它們放在INSERT語句之前,它被認爲是MySQL的最佳實踐或整體性能提升?在SELECT WHERE之前添加表索引並在INSERT之前刪除它們

+2

你一定是在開玩笑!爲已有數據的表創建索引時,數據庫軟件會掃描整個表以實際構建索引。那麼,你會如何回答你自己的問題? – FDavidov

+0

一般來說,你不會這樣做,但是索引也會有插入性能的影響,所以如果你做的非常大(不管是什麼意思)大容量插入,當沒有選擇時,然後刪除索引並重新創建它們可能會提高吞吐量插入。 –

回答

2

即使答案是顯而易見的:前SELECT ... WHERE語句添加一個索引到表之前INSERT聲明投下他們是非常糟糕實踐。我很確定這對每個數據庫都適用。

您將在每個SELECT上爲表中的每一行創建索引條目。當插入或更新新行時,創建/更新索引條目的成本要高得多。

+0

謝謝您的詳細解答 –

相關問題