简述sqlite数据库的特点_SQLite
SQLite采用了模塊的設(shè)計(jì),它由三個(gè)子系統(tǒng),包括8個(gè)獨(dú)立的模塊構(gòu)成。
1、接口(Interface)
接口由SQLite C API組成,也就是說(shuō)不管是程序、腳本語(yǔ)言還是庫(kù)文件,最終都是通過(guò)它與SQLite交互的(我們通常用得較多的ODBC/JDBC最后也會(huì)轉(zhuǎn)化為相應(yīng)C API的調(diào)用)。
2、編譯器(Compiler)
在編譯器中,分詞器(Tokenizer)和分析器(Parser)對(duì)SQL進(jìn)行語(yǔ)法檢查,然后把它轉(zhuǎn)化為底層能更方便處理的分層的數(shù)據(jù)結(jié)構(gòu)---語(yǔ)法樹(shù),然后把語(yǔ)法樹(shù)傳給代碼生成器(code generator)進(jìn)行處理。而代碼生成器根據(jù)它生成一種針對(duì)SQLite的匯編代碼,最后由虛擬機(jī)(Virtual Machine)執(zhí)行。
3、虛擬機(jī)(Virtual Machine)
架構(gòu)中最核心的部分是虛擬機(jī),或者叫做虛擬數(shù)據(jù)庫(kù)引擎(Virtual Database Engine,VDBE)。它和Java虛擬機(jī)相似,解釋執(zhí)行字節(jié)代碼。VDBE的字節(jié)代碼由128個(gè)操作碼(opcodes)構(gòu)成,它們主要集中在數(shù)據(jù)庫(kù)操作。它的每一條指令都用來(lái)完成特定的數(shù)據(jù)庫(kù)操作(比如打開(kāi)一個(gè)表的游標(biāo))或者為這些操作棧空間的準(zhǔn)備(比如壓入?yún)?shù))。總之,所有的這些指令都是為了滿足SQL命令的要求(關(guān)于VM,后面會(huì)做詳細(xì)介紹)。
4、后端(Back-End)
后端由B-樹(shù)(B-tree),頁(yè)緩存(page cache,pager)和操作系統(tǒng)接口(即系統(tǒng)調(diào)用)構(gòu)成。B-tree和page cache共同對(duì)數(shù)據(jù)進(jìn)行管理。B-tree的主要功能就是索引,它維護(hù)著各個(gè)頁(yè)面之間的復(fù)雜的關(guān)系,便于快速找到所需數(shù)據(jù)。而pager的主要作用就是通過(guò)OS接口在B-tree和Disk之間傳遞頁(yè)面。
總結(jié)
以上是生活随笔為你收集整理的简述sqlite数据库的特点_SQLite的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 空行替换_Word怎么批量删除空行和空格
- 下一篇: phpcms发布新闻到数据库_Phpcm