2010-11-25 84 views
6

在我的iPhone應用程序中,我有大量的數據,即大約1000頁的文本。將數據存儲在plist或Sqlite數據庫中會更好嗎?

我應該怎麼做來保存它們?

我應該使用plist還是Sqlite數據庫表?

其中哪個會證明效率更高?

請幫助和建議。

在此先感謝。

+1

http://stackoverflow.com/questions/1090391/plist-or-sqlite – Rhapsody 2010-11-25 11:39:26

回答

8

對於大量的數據,sqlite或coreData更好,因爲所有數據都不會在內存中加載到一個數據庫中。
使用pList,整個文件在內存中讀取。之後,你可以只保留你想要的數據,但沒有優化。

+0

謝謝,這使得它很容易決定使用。我從來沒有把它解釋得很清楚,你是否希望將所有數據一次加載到內存中。 – RachelC 2012-03-19 17:44:41

1

您應該使用plist來存儲配置設置。

對於你在做什麼,我會使用sqlite3或核心數據存儲。

1

pList實際上只是一個xml文件,所以優點(如人和計算機易於讀取)和xml(存儲/檢索效率)的缺點都適用。

儘管SQLite顯然爲您提供了SQL的好處。對於大數據SQLite將是更好的選擇

1

重要的是你將訪問它們的方式。如果它是隨機訪問或小部分訪問的東西,則可以使用像sqlite這樣的數據庫。如果這是你一次使用所有的醜陋的東西,一個plist是好的。正如@Benoît所說,plists完全被加載到內存中。對於像書本這樣的東西,您可能還會考慮將頁面存儲在單獨的文件中,從而使用文件系統來管理訪問(當然取決於您打算如何使用它)。

5

取決於如何和你要存儲的數據是什麼:

使用SQLite如果:

  1. 數據需要被訪問的只有部分
  2. 反覆更新
  3. 數據本身在字節方面很大

否則使用plist!

在你的情況,我會推薦使用SQLite 3或coredata。

0

屬性列表

甲plist中僅僅是其可含有常見的數據類型,例如字符串,數字,數組和字典嵌套鍵 - 值對的列表。

優點

  • 簡單的理解。
  • 易於使用。

缺點

不能在它們上面運行復雜的查詢(至少不容易)。 您必須將整個文件讀入內存才能從中獲取任何數據,並保存整個文件以修改其中的任何內容。

SQLite的

直到CoreData來了,這是爲了讀取和寫入iPhone應用程序數據的流行方式。如果你是一個Web開發人員,這不是什麼新鮮事。

優點

  • 不同的Plist,你不必將整個數據庫加載前面。 這使得SQLite更適合具有大量數據的應用程序。
  • 比的Plist的切片和切塊的數據更好。

缺點比的Plist

陡峭的學習曲線。 可能會很繁瑣的工作。

核心數據

其新的,令人興奮的,它可能是大多數開發商會從這裏使用上了。

我沒有花足夠的時間與CoreData來概括它;查看教程(下面)瞭解更多信息。

優點

  • 幾乎所有的SQLite的一個不太很多的麻煩(蘋果確實 很多骯髒的工作,爲您)的利益。

  • 作爲蘋果的首選方法,它有更多的官方文檔和示例代碼(看起來其他兩種方法的文章和示例代碼已經從Apple的網站神祕地消失)。

缺點比的Plist

  • 陡峭的學習曲線。
  • 殺手:只適用於iPhone OS> 3.0。它的殺手如果你的市場主要由iPod Touch用戶組成(他們必須支付升級費用)。
相關問題