我最近開始閱讀有關面試的數據庫,並且遇到了這個問題。誰能幫我這個?由於索引加速搜索,爲什麼DBMS不會自動爲表的每一列創建索引?
0
A
回答
2
基本上,因爲擁有太多的SQL索引會導致更新和插入速度變慢,同時也會佔用磁盤空間。所以在列中有索引,你不打算用於過濾或訂單是一個壞主意。
有時您還需要一個複雜的索引(由兩列或更多列構成),所以它對於RDBMS爲每個可能的列組合創建一個索引是非常荒謬的。
0
Ditto Rafa。讓我補充:
有一個索引可以更快地找到想要的記錄。但是它使插入和刪除記錄變得更慢,並且使用更多的磁盤空間和其他資源。
所以這是一個權衡。如果您很少或從不使用特定字段查找記錄,那麼爲它創建和維護索引就沒有意義了。就像假設你有一個包含顧客名字的數據庫。索引姓氏可能是有道理的。你可能會用姓氏做很多搜索。但是,如果你有一個Junior/Senior/Esq /等的字段,那麼在索引上可能沒有多少意義。你多久會說:「我們不知道他的賬號,我們不知道他的名字,我們不知道他的地址,但我們知道他是'Junior'」。
如果數據庫讀取頻率很高,但很少更新,那麼您可以繼續並在結束情況下創建索引。如果一個數據庫大部分是被編寫的,很少被讀取 - 就像一個事務歸檔可能 - 這會是索引較少的原因。
相關問題
- 1. 爲什麼這是索引掃描而不是索引搜索?
- 2. 爲什麼wordpress不會爲`wp_users`.`user_login`創建唯一索引?
- 3. 爲什麼fk在某些DBMS中自動生成索引?
- 4. 爲什麼Postgresql搜索文本索引比Int索引快?
- 5. 爲什麼不能用索引列表索引一個python列表?
- 6. 爲什麼postgres不會自動增加索引?
- 7. 爲什麼MySQL Innodb在創建唯一索引時「創建排序索引」?
- 8. 創建數據庫索引Vs用戶爲表創建索引
- 9. 列表索引搜索
- 10. 爲什麼不使用PostgreSQL索引並建議索引
- 11. 創建一個動態列表索引
- 12. MySQL索引自動禁用 - 爲什麼?
- 13. 爲什麼python索引方法不附加索引?
- 14. 如何創建搜索引擎,自動搜索語音識別
- 15. 如何爲動態搜索字符串創建索引
- 16. 爲什麼索引是自動創建到外鍵字段?
- 17. 爲什麼數字上的索引大於String上的索引?
- 18. 對於char/varchar/text列,爲什麼該列的索引使搜索更快?
- 19. SQLite不會創建索引
- 20. Neo4j索引 - 我應該索引什麼來加速CSV加載?
- 21. 在搜索引擎中自動搜索
- 22. ListView搜索引發NullPointer爲什麼getFilter()?
- 23. 爲什麼Mysql不在索引列上使用INNER JOIN表的索引?
- 24. 爲什麼索引器不搜索波斯文件?
- 25. MATLAB:快速創建索引
- 26. 動態創建列表的索引Javascript
- 27. 爲什麼自定義Google搜索引擎上的網頁搜索返回的結果少於標準搜索?
- 28. 在每組列上創建索引或爲每列創建單獨的索引,哪個更好?
- 29. 創建索引列
- 30. 爲什麼System.ComponentModel.AttributeCollection索引器不一致?
創建索引會節省時間和空間。許多列的數據在構建正常索引的方式上結構不完善;考慮一本書的標題字段。因此,建立指數受益於指數的指數的做法。 –