SQLite數(shù)據(jù)庫的技術(shù)特點(diǎn)點(diǎn)評(píng)
導(dǎo)讀:SQLite 是 D. Richard Hipp 用 C 語言編寫的開源嵌入式數(shù)據(jù)庫引擎。它是完全獨(dú)立的,不具有外部依賴性。它是作為 PHP V4.3 中的一個(gè)選項(xiàng)引入的,構(gòu)建在 PHP V5 中。SQLite 支持多數(shù) SQL92 標(biāo)準(zhǔn),可以在所有主要的操作系統(tǒng)上運(yùn)行,并且支持大多數(shù)計(jì)算機(jī)語言。SQLite 還非常健壯。其創(chuàng)建者保守地估計(jì) SQLite 可以處理每天負(fù)擔(dān)多達(dá) 100,00 次點(diǎn)擊率的 Web 站點(diǎn),并且 SQLite 有時(shí)候可以處理 10 倍于上述數(shù)字的負(fù)載。SQLite 的網(wǎng)址是,***版本是2005年9月24日發(fā)布的3.2.7 。SQLite的標(biāo)志是一只羽毛,見圖-5。
圖6 SQLite標(biāo)志
SQLite的技術(shù)特點(diǎn):
SQLite 對(duì) SQL92 標(biāo)準(zhǔn)的支持包括索引、限制、觸發(fā)和查看。SQLite 不支持外鍵限制,但支持原子的、一致的、獨(dú)立和持久 (ACID) 的事務(wù)(后面會(huì)提供有關(guān) ACID 的更多信息)。這意味著事務(wù)是原子的,因?yàn)樗鼈円赐耆珗?zhí)行,要么根本不執(zhí)行。事務(wù)也是一致的,因?yàn)樵诓灰恢碌臓顟B(tài)中,該數(shù)據(jù)庫從未被保留。事務(wù)還是獨(dú)立的,所以,如果在同一時(shí)間在同一數(shù)據(jù)庫上有兩個(gè)執(zhí)行操作的事務(wù),那么這兩個(gè)事務(wù)是互不干擾的。而且事務(wù)是持久性的,所以,該數(shù)據(jù)庫能夠在崩潰和斷電時(shí)幸免于難,不會(huì)丟失數(shù)據(jù)或損壞。SQLite 通過數(shù)據(jù)庫級(jí)上的獨(dú)占性和共享鎖定來實(shí)現(xiàn)獨(dú)立事務(wù)處理。這意味著當(dāng)多個(gè)進(jìn)程和線程可以在同一時(shí)間從同一數(shù)據(jù)庫讀取數(shù)據(jù),但只有一個(gè)可以寫入數(shù)據(jù)。在某個(gè)進(jìn)程或線程向數(shù)據(jù)庫執(zhí)行寫入操作之前,必須獲得獨(dú)占鎖定。在發(fā)出獨(dú)占鎖定后,其他的讀或?qū)懖僮鲗⒉粫?huì)再發(fā)生。
總結(jié):目前的開源數(shù)據(jù)庫還不能在功能和處理能力方面追上商業(yè)級(jí)產(chǎn)品,但價(jià)格的侵蝕力無法回避,開源數(shù)據(jù)庫迅速增長(zhǎng)的市場(chǎng)份額甚至讓數(shù)據(jù)庫領(lǐng)域的三巨頭,Oracle、IBM、微軟都感到忐忑不安。開源數(shù)據(jù)庫的用戶在增長(zhǎng),并正在被越來越多的用戶所采用。在嵌入式數(shù)據(jù)庫領(lǐng)域,開源數(shù)據(jù)庫優(yōu)勢(shì)更加明顯。分析師稱開放源碼正在迅速被數(shù)據(jù)庫技術(shù)所采用。開放源碼“從2000年被懷疑到2005年已經(jīng)發(fā)展成為全球的主流技術(shù)”。低成本甚至免費(fèi)的開源數(shù)據(jù)庫時(shí)代即將來。
隨著開放源代碼軟件的使用越來越廣泛,像Linux操作系統(tǒng)一樣,開放源代碼數(shù)據(jù)庫的出現(xiàn)也有其必然性。SQLite就是其中之一的開放源代碼的數(shù)據(jù)庫系統(tǒng),推動(dòng)了開源數(shù)據(jù)庫的發(fā)展。
【編輯推薦】