0
如果我在SELECT..WHERE
語句之前向表中添加索引並將它們放在INSERT
語句之前,它被認爲是MySQL的最佳實踐或整體性能提升?在SELECT WHERE之前添加表索引並在INSERT之前刪除它們
如果我在SELECT..WHERE
語句之前向表中添加索引並將它們放在INSERT
語句之前,它被認爲是MySQL的最佳實踐或整體性能提升?在SELECT WHERE之前添加表索引並在INSERT之前刪除它們
即使答案是顯而易見的:前SELECT ... WHERE
語句添加一個索引到表之前INSERT
聲明投下他們是非常糟糕實踐。我很確定這對每個數據庫都適用。
您將在每個SELECT
上爲表中的每一行創建索引條目。當插入或更新新行時,創建/更新索引條目的成本要高得多。
謝謝您的詳細解答 –
你一定是在開玩笑!爲已有數據的表創建索引時,數據庫軟件會掃描整個表以實際構建索引。那麼,你會如何回答你自己的問題? – FDavidov
一般來說,你不會這樣做,但是索引也會有插入性能的影響,所以如果你做的非常大(不管是什麼意思)大容量插入,當沒有選擇時,然後刪除索引並重新創建它們可能會提高吞吐量插入。 –