2011-02-14 62 views
2

哪一個更有效地存儲緩存數據。我看到Twitter的Mac存儲sqlite文件中的blob信息。一些應用程序實現NSCoding協議。Sqlite 3與NSCoding協議

一個優於另一個嗎?

回答

4

這兩者完全不同。 SQLite是一個關係數據庫,圍繞NSCoding的東西是一種對象序列化技術。選擇取決於您的緩存數據。如果你的緩存是一堆對象,我肯定會去找NSCoding,因爲它非常簡單,比原始SQLite簡單得多。一旦磁盤緩存中有成千上萬的對象,並且不希望一次加載所有對象,則可能更適合SQLite。

+0

謝謝,你看到Twitter的Mac的cache.db?他使用sqlite文件,但不是作爲數據庫。每行只是將信息存儲在blob中。想知道當通過sqlite使用文件系統時是否存在perf命中。 – Mugunth

2

與其說是處理SQL複雜性問題,你可能想嘗試類似CoreData的東西,而不是很容易地存儲對象圖。

如果您需要存儲二進制數據,CoreData也可以這樣做,但是您在指定數據模型時應考慮數據大小。

檢查對這個問題馬庫斯Zarra講話:

你會發現在這一個由艾倫·希爾加斯其它有趣的信息: