2010-07-22 58 views
3

作爲昨天我問到的一個問題的答案(New Core Data entity identical to existing one: separate entity or other solution?),有人建議我索引一個屬性。核心數據中的「索引」究竟是什麼?

經過在Google上搜索SQLite/Core Data中'索引'的內容後,恐怕我不會更加清楚它究竟是什麼或者它如何加速基於屬性的提取。請記住,我一般對SQLite /數據庫一無所知,除了基於過去幾個月閱讀Core Data的方式,方式和方式太多的模糊想法。

回答

3

簡單地說,索引是一種預分類。如果您有數字屬性索引,商店會按數字順序維護鏈接列表。如果您有一個文本屬性,它將按字母順序維護一個鏈接列表。根據算法的不同,它也可以維護其他類型的屬性信息。它將數據存儲在附加到持久性存儲文件的索引中。

它使得基於索引屬性的提取速度更快,並且文件大小和插入稍慢一些。

1

Wikipedia有一個數據庫索引的很好的解釋:

「A數據庫索引是,在寫入速度較慢的成本提高了數據檢索操作速度上的一個數據庫表的數據結構和增加的存儲空間「。

2

所有這些答案都很好,但過於技術性。

索引與您在本書後面找到的索引幾乎完全相同。因此,如果您想要查找某個單詞出現在哪個頁面上,您可以按字母順序進行查看,從而快速找到出現該單詞的所有頁面。

如果您沒有索引,那麼用戶將不得不求助於逐字地逐字逐頁閱讀,這可能需要很長時間。因此,這種索引幾乎只用一次,而不是每次用戶都想搜索。