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面試題合集