我有一個索引覆蓋兩個字段的MySQL表。如果我在表格中插入新行,我的索引是否仍然有效?插入新行後MySQL索引是否仍然有效?
回答
我有一個索引覆蓋兩個字段的MySQL表。如果在表格中插入新行,我的索引是否仍然有效?
是的,每次執行該表的插入/更新/刪除時索引都會更新。
是的。你能解釋一下爲什麼你認爲它不可能嗎?
請注意,如果您在其中一個或兩個字段上都有單獨的索引,那麼mysql(至少有一些我使用過的5.0版本)默認情況下不會使用組合索引;如果有疑問,請使用EXPLAIN來驗證您的索引是否按照您的預期使用。
是的,索引自動更新;因此索引(aka索引)使插入,更新和刪除速度更慢。
但是關於索引(或索引)的關鍵點是它們通常會使選擇操作更快。如果索引沒有更快地查詢某個查詢,那麼最好是強制執行某種特定的約束 - 否則它就會出現問題,應該刪除。 – 2009-12-29 23:42:08
是的,它仍然有效。如果您在插入新數據後無法使用索引,索引將毫無用處。請注意,添加到表中的數據越多,索引越大,因此您希望確保正確創建它們並將其限制爲您所需的數據。
正如其他人所說,指數是隨每個插入更新。這是插入和更新的性能損失的一部分。
其實這並不像一些回答者所暗示的那樣古怪。在20世紀80年代,我設計了一個使用RDBMS的系統,該系統推遲更新「性能」(根據文檔)。具有諷刺意味的是,它被命名爲RDM
,最初是爲實時數據管理器(或與之非常接近的東西),但後來被倒退回響應數據管理器。
RDM似乎用於人類速度更新,所以推遲數據庫寫入,直到完成了幾行爲止,這可能是可以接受的。我設計的系統使用連接到自動數據源的數據庫服務器封裝的數據庫後端。 AFAIK,這是RDM期待快速行插入的第一個應用。其中一個問題解決方案是設計一個時間戳字段,以便系統中的所有節點都可以說「使用yyyy-mm-dd hh:mm:ss更新所有內容」。原來,這是一種最糟糕的索引更新/刷新方案,並且可以進行診斷。一旦無記錄的電話意味着相信我,我真的想要數據刷新和索引更新現在被添加,它工作得很好。
有用的例子是我記得通過傳聞知道在某些系統上是一個問題。 – 2009-12-29 23:43:42
- 1. 是否仍然有效?
- 2. Sharekit是否仍然有效?
- 3. 是否有可能更新然後在mysql中插入?
- 4. 插入後NHibernate仍然會更新
- 5. 我的MySQL索引是否有效?
- 6. 典雅地檢查HTTPSession引用是否仍然有效
- 7. 檢查自動更新訂閱是否仍然有效
- 8. 是yql Bing搜索還是BOSS搜索v2仍然有效?
- 9. mySQL返回索引後插入
- 10. MySQL是否在創建新索引時使用現有索引?
- 11. 進行驗證,然後插入到MySQL
- 12. PHP/MySQL插入行然後得到'id'
- 13. PHP搜索然後插入
- 14. 打印x列然後插入新行
- 15. Mysql插入當前結果,然後插入新結果
- 16. MySQL和插入最後一個ID問題仍然
- 17. 在地圖中插入更多元素之後,指向QMap中元素的指針是否仍然有效?
- 18. 是否插入/更新/刪除記錄自動更新索引?
- 19. ArrayList更新插入一行,但Jtable仍然不刷新
- 20. 索引值仍然爲0
- 21. 角4 Form仍然有效,如果不允許值插入
- 22. 是否有任何Google語音API仍然有效?
- 23. 檢查密鑰是否存在,然後插入或更新
- 24. MySQL的插入行,在重複:添加後綴,舊的(現有的)值,然後重新插入
- 25. Mysql插入新行
- 26. 「在重複更新插入」仍然插入重複項
- 27. 插入或更新是否存在MYSQL
- 28. PHP/MySQL的 - 如何檢測是否仍然更新(笨)
- 29. 如何更有效地更新行插入的自定義索引?
- 30. 編寫後臺進程來檢查進程是否仍然有效
只是以前沒有使用過它們。我想他們會,但我想確定。 – Brian 2009-12-29 23:00:08