2014-01-08 29 views
1

我知道使用Coredata和Direct Sql命令在進行本地存儲時用於iOS的區別。但是仍然可以有人提出哪一個更好,更高效,最優化,並且可以使用大數據?電話如何與他們一起工作? Coredata還有上下文互動,所以有沒有增加打電話的速度?非常感謝你的幫助。CoreData和Sqllite用於大數據的工作?

+1

可能的重複http://stackoverflow.com/questions/1318467/use-coredata-or-sqlite-on-iphone –

回答

7

核心數據。蘋果已經投入了大量的精力來使其在iOS上運行良好。考慮到你在有限的CPU和有限的內存環境下工作,你真的想用一個考慮到這些因素的框架。

如果你直接使用SQLite,你需要自己處理所有這些。 ARC不會幫你,因爲它是一個C庫。

核心數據的目標是保持你的記憶。你當然可以打破它,但你會更進一步使用蘋果的圖書館,而不是避免它們。

1

除非你正在做一些非常專業的事情,否則Core Data可能是最合適的。請記住,Core Data不是關係數據庫。

這裏有一些其他的鏈接,以幫助您決定:

此外,如果你決定去SQLite的路線, FMDB是一個很好的目標-C wr衝擊片雷管。

0

"Big data"通常是指數據集的大小超出了常用軟件工具在可容忍的時間內捕獲,管理,管理和處理數據的能力。移動設備絕不會直接處理大數據 - 它們將與數據的子集一起工作,通常通過某種Web服務。儘管如此,整個數據集永遠不會存儲在本地。你通常在談論TB級的信息。

但是,在處理數據的子集時,您使用的方法取決於您正在嘗試執行的操作。核心數據是一個對象圖和持久性框架,而不是關係數據庫。如果您需要管理對象圖並更改爲該圖,Core Data通常非常適合。但是,如果您想要進行復雜的數據挖掘,則最好使用SQLite。

請記住,核心數據經過大量優化,可在有限的處理能力下處理有限的內存;如果你使用的是SQLite,你需要自己做很多的管理。

從設計的角度來看,使用服務器完成繁重的工作 - 查詢和數據挖掘 - 並且只返回所需的子集以便在移動設備上進行如此處理的工作量降到最低。