2014-03-03 52 views

回答

2

基本上,因爲擁有太多的SQL索引會導致更新和插入速度變慢,同時也會佔用磁盤空間。所以在列中有索引,你不打算用於過濾或訂單是一個壞主意。

有時您還需要一個複雜的索引(由兩列或更多列構成),所以它對於RDBMS爲每個可能的列組合創建一個索引是非常荒謬的。

0

Ditto Rafa。讓我補充:

有一個索引可以更快地找到想要的記錄。但是它使插入和刪除記錄變得更慢,並且使用更多的磁盤空間和其他資源。

所以這是一個權衡。如果您很少或從不使用特定字段查找記錄,那麼爲它創建和維護索引就沒有意義了。就像假設你有一個包含顧客名字的數據庫。索引姓氏可能是有道理的。你可能會用姓氏做很多搜索。但是,如果你有一個Junior/Senior/Esq /等的字段,那麼在索引上可能沒有多少意義。你多久會說:「我們不知道他的賬號,我們不知道他的名字,我們不知道他的地址,但我們知道他是'Junior'」。

如果數據庫讀取頻率很高,但很少更新,那麼您可以繼續並在結束情況下創建索引。如果一個數據庫大部分是被編寫的,很少被讀取 - 就像一個事務歸檔可能 - 這會是索引較少的原因。

相關問題