iOS面試題:數(shù)據(jù)庫(kù)選擇原因(realm 、coreData、FMDB、Sqlite)

SQLite
SQLite是在世界上使用的最多的數(shù)據(jù)庫(kù)引擎,并且還是開(kāi)源的。它實(shí)現(xiàn)了無(wú)配置,無(wú)服務(wù)要求的事務(wù)數(shù)據(jù)庫(kù)引擎。SQLite可以在Mac OS-X, iOS, Android, Linux, 和 Windows上使用.
由于它是使用ANSI-C開(kāi)發(fā)的,因此它提供了一個(gè)簡(jiǎn)單的,方便使用的編程接口。SQLite也是一個(gè)小的,輕量級(jí)的,可以被存儲(chǔ)在跨平臺(tái)磁盤(pán)文件的完善的數(shù)據(jù)庫(kù)。
SQLite之所以這么流行的原因是:

  • 獨(dú)立于服務(wù)器
  • 零配置
  • 多進(jìn)程和線(xiàn)程下安全訪問(wèn)。
  • 在表中使用含有特殊數(shù)據(jù)類(lèi)型的一列或多列存儲(chǔ)數(shù)據(jù)。

Core Data
Core Data是App開(kāi)發(fā)者可以使用的第二大主要的iOS存儲(chǔ)技術(shù)。你需要根據(jù)數(shù)據(jù)類(lèi)型和數(shù)據(jù)量進(jìn)行管理和存儲(chǔ),SQLite和Core Data都有它們各自的優(yōu)缺點(diǎn)。Core Data 更加關(guān)注于對(duì)象而不是傳統(tǒng)的表數(shù)據(jù)庫(kù)方法。使用Core Data,你可以存儲(chǔ)一個(gè)Objective-C類(lèi)的對(duì)象。

  • 比SQLite使用更多的內(nèi)存。
  • 比SQLite使用更多的存儲(chǔ)空間。
  • 比SQLite在取數(shù)據(jù)方面更快。

FMDB
FMDB框架其實(shí)只是一層很薄的封裝,主要的類(lèi)也就兩個(gè):FMDatabase和FMResultSet。在使用fmdb的時(shí)候還需要導(dǎo)入libsqlite3.0.dylib。

core data允許用戶(hù)使用代表實(shí)體和實(shí)體間關(guān)系的高層對(duì)象來(lái)操作數(shù)據(jù)。它也可以管理串行化的數(shù)據(jù),提供對(duì)象生存期管理與object_graph 管理,包括存儲(chǔ)。Core Data直接與Sqlite交互,避免開(kāi)發(fā)者使用原本的SQL語(yǔ)句.

Realm
Realm 是個(gè)新技術(shù)。Realm天生比前面提到的數(shù)據(jù)庫(kù)解決方案更快,更高效。新的解決方案就叫做Realm,它是一個(gè)跨平臺(tái)的移動(dòng)數(shù)據(jù)庫(kù)。它可以在Objective-C 和Swift中使用,并且它是專(zhuān)門(mén)為 iOS 和 Android設(shè)計(jì)的數(shù)據(jù)庫(kù)。
Realm最主要的優(yōu)勢(shì)是:

  • 絕對(duì)免費(fèi)
  • 快速,簡(jiǎn)單的使用
  • 沒(méi)有使用限制
  • 為了速度和性能,運(yùn)行在自己的持久化引擎上。

更多:iOS面試題合集

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Realm是由Y Combinator公司孵化出來(lái)的一款可以用于iOS(同樣適用于Swift&Objective-...
    小歪子go閱讀 2,377評(píng)論 6 9
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,172評(píng)論 4 61
  • 跨平臺(tái):現(xiàn)在很多應(yīng)用都是要兼顧iOS和Android兩個(gè)平臺(tái)同時(shí)開(kāi)發(fā)。如果兩個(gè)平臺(tái)都能使用相同的數(shù)據(jù)庫(kù),那就不用考...
    CoderZS閱讀 2,659評(píng)論 2 16
  • 看本文之前首先需了解 spring注解驅(qū)動(dòng)開(kāi)發(fā)。可以看另外一篇文章spring注解,本文是在spring注解開(kāi)發(fā)的...
    有點(diǎn)胖的小樂(lè)樂(lè)閱讀 568評(píng)論 0 0
  • 有時(shí)候我也不知道是什么力量支撐著自己一直努力,但是,是不是一直努力就好,不論這股力量來(lái)自于什么?
    白馥祎013閱讀 177評(píng)論 0 0

友情鏈接更多精彩內(nèi)容