中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

sqlite和coreData的性能比較

發布時間:2020-08-07 01:24:49 來源:網絡 閱讀:761 作者:jackscm 欄目:開發技術
  1. 使用方便性。實際上,一個成熟的工程中一定是對數據持久化進行了封裝的,因此底層使用的到底是core data還是sqlite,不應該被業務邏輯開發者關心。因此,即使習慣寫SQL查詢的人,也應該避免在業務邏輯中直接編寫SQL語句。

  2. 存儲性能,在寫入性能上,因為都是使用的sqlite格式作為磁盤存儲格式,因此其性能是一樣的,如果你覺得用core data寫的慢,很可能是你用sqlite的時候寫的每條數據的內容沒有core data時多,或者是你批量寫入的時候每寫入一條就調用了一次save。

  3. 查詢性能,core data因為要兼容多種后端格式,因此查詢時,其可用的語句比直接使用sqlite少,因此有些fetch實際上不是在sqlite中執行的。但這樣未必會降低查詢效率。因為iPhone的flash memory速度還是很快的。我的經驗是大部分時候,在內存不是很緊張時,直接fetch一個entity的所有數據然后在內存中做filter往往比使用predicate在fetch時過濾更快。如果你覺的查詢慢,很可能是查詢方式有問題,可以把core data的debug模式打開,看一下到底執行了多少SQL語句,相信其中大部分是可以通過改寫core data的調用方式避免的。

  4. core data的一個比較大的痛點是多人合作開發的時候,管理coredata的模型需要很小心,尤其是合并的時候,他的data model是XML格式的,手動resolve比較煩心。

  5. core data還有其他sql所不具備的優點,比如對undo的支持,多個context實現sketchbook類似的功能。為ManagedObject優化的row cash等。

  6. 另外core data是支持多線程的,但需要thread confinement的方式實現,使用了多線程之后可以最大化的防止阻塞主線程。


1.如果你的項目規模比較大,用coreData 可以減少你對存儲管理的很多工作,否則你可能需要自己寫很多的數據模型倒數據庫操作的代碼。
2.你的數據結構變化,數據遷移的時候coreData能幫你自動的完成,用sqlite 你就需要自己寫代碼來完成。
3.coreData還有些其他效率方面的優化,比如延遲寫入。

對我自己而言,一般來說,如果沒有復雜的 查詢 需求,而數據量又比較小的話,我會用文件來做存儲,自我感覺比較干凈。如果涉及到比較多的數據,但是結構比較單一,表比較少,邏輯比較簡單用sqlite也不錯,但是如果你的表比較多,操作也比較多,還有升級遷移的需求,推薦使用coreData吧。


http://blog.jobbole.com/52880/

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

精河县| 富民县| 嘉祥县| 镇江市| 金门县| 宁城县| 永年县| 偃师市| 平罗县| 洪江市| 丹凤县| 南丰县| 波密县| 太仓市| 湘乡市| 北京市| 梅河口市| 台山市| 巧家县| 丽水市| 邵武市| 黄石市| 汤阴县| 桐柏县| 垦利县| 宁城县| 酒泉市| 蓬安县| 隆安县| 望奎县| 丰宁| 公安县| 浮山县| 临夏县| 胶南市| 土默特左旗| 渭源县| 武冈市| 扶风县| 平定县| 竹山县|