国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁 > 數(shù)據(jù)庫 > SQLite > 正文

SQLite教程(一):SQLite數(shù)據(jù)庫介紹

2020-01-25 19:29:26
字體:
供稿:網(wǎng)友
這篇文章主要介紹了SQLite教程(一):SQLite數(shù)據(jù)庫介紹,本文講解了什么是SQLite、SQLite的主要優(yōu)點(diǎn)、和RDBMS相比SQLite的一些劣勢(shì)、個(gè)性化特征等內(nèi)容,需要的朋友可以參考下
 

一、簡介:

    SQLite是目前最流行的開源嵌入式數(shù)據(jù)庫,和很多其他嵌入式存儲(chǔ)引擎相比(NoSQL),如BerkeleyDB、MemBASE等,SQLite可以很好的支持關(guān)系型數(shù)據(jù)庫所具備的一些基本特征,如標(biāo)準(zhǔn)SQL語法、事務(wù)、數(shù)據(jù)表和索引等。事實(shí)上,盡管SQLite擁有諸多關(guān)系型數(shù)據(jù)庫的基本特征,然而由于應(yīng)用場(chǎng)景的不同,它們之間并沒有更多的可比性。下面我們將列舉一下SQLite的主要特征:

    1). 管理簡單,甚至可以認(rèn)為無需管理。
    2). 操作方便,SQLite生成的數(shù)據(jù)庫文件可以在各個(gè)平臺(tái)無縫移植。
    3). 可以非常方便的以多種形式嵌入到其他應(yīng)用程序中,如靜態(tài)庫、動(dòng)態(tài)庫等。
    4). 易于維護(hù)。

    綜上所述,SQLite的主要優(yōu)勢(shì)在于靈巧、快速和可靠性高。SQLite的設(shè)計(jì)者們?yōu)榱诉_(dá)到這一目標(biāo),在功能上作出了很多關(guān)鍵性的取舍,與此同時(shí),也失去了一些對(duì)RDBMS關(guān)鍵性功能的支持,如高并發(fā)、細(xì)粒度訪問控制(如行級(jí)鎖)、豐富的內(nèi)置函數(shù)、存儲(chǔ)過程和復(fù)雜的SQL語句等。正是因?yàn)檫@些功能的犧牲才換來了簡單,而簡單又換來了高效性和高可靠性。
    
二、SQLite的主要優(yōu)點(diǎn):

    1. 一致性的文件格式:

    在SQLite的官方文檔中是這樣解釋的,我們不要將SQLite與Oracle或PostgreSQL去比較,而是應(yīng)該將它看做fopen和fwrite。與我們自定義格式的數(shù)據(jù)文件相比,SQLite不僅提供了很好的移植性,如大端小端、32/64位等平臺(tái)相關(guān)問題,而且還提供了數(shù)據(jù)訪問的高效性,如基于某些信息建立索引,從而提高訪問或排序該類數(shù)據(jù)的性能,SQLite提供的事務(wù)功能,也是在操作普通文件時(shí)無法有效保證的。
    
    2. 在嵌入式或移動(dòng)設(shè)備上的應(yīng)用:

    由于SQLite在運(yùn)行時(shí)占用的資源較少,而且無需任何管理開銷,因此對(duì)于PDA、智能手機(jī)等移動(dòng)設(shè)備來說,SQLite的優(yōu)勢(shì)毋庸置疑。
    
    3. 內(nèi)部數(shù)據(jù)庫:

    在有些應(yīng)用場(chǎng)景中,我們需要為插入到數(shù)據(jù)庫服務(wù)器中的數(shù)據(jù)進(jìn)行數(shù)據(jù)過濾或數(shù)據(jù)清理,以保證最終插入到數(shù)據(jù)庫服務(wù)器中的數(shù)據(jù)有效性。有的時(shí)候,數(shù)據(jù)是否有效,不能通過單一一條記錄來進(jìn)行判斷,而是需要和之前一小段時(shí)間的歷史數(shù)據(jù)進(jìn)行特殊的計(jì)算,再通過計(jì)算的結(jié)果判斷當(dāng)前的數(shù)據(jù)是否合法。在這種應(yīng)用中,我們可以用SQLite緩沖這部分歷史數(shù)據(jù)。還有一種簡單的場(chǎng)景也適用于SQLite,即統(tǒng)計(jì)數(shù)據(jù)的預(yù)計(jì)算。比如我們正在運(yùn)行數(shù)據(jù)實(shí)時(shí)采集的服務(wù)程序,我們可能需要將每10秒的數(shù)據(jù)匯總后,形成每小時(shí)的統(tǒng)計(jì)數(shù)據(jù),該統(tǒng)計(jì)數(shù)據(jù)可以極大的減少用戶查詢時(shí)的數(shù)據(jù)量,從而大幅提高前端程序的查詢效率。在這種應(yīng)用中,我們可以將1小時(shí)內(nèi)的采集數(shù)據(jù)均緩存在SQLite中,在達(dá)到整點(diǎn)時(shí),計(jì)算緩存數(shù)據(jù)后清空該數(shù)據(jù)。
    
    4. 數(shù)據(jù)分析:

    可以充分利用SQLite提供SQL特征,完成簡單的數(shù)據(jù)統(tǒng)計(jì)分析的功能。這一點(diǎn)是CSV文件無法比擬的。
    
    5. 產(chǎn)品Demo和測(cè)試:

    在需要給客戶進(jìn)行Demo時(shí),可以使用SQLite作為我們的后臺(tái)數(shù)據(jù)庫,和其他關(guān)系型數(shù)據(jù)庫相比,使用SQLite減少了大量的系統(tǒng)部署時(shí)間。對(duì)于產(chǎn)品的功能性測(cè)試而言,SQLite也可以起到相同的作用。
        
三、和RDBMS相比SQLite的一些劣勢(shì):

    1. C/S應(yīng)用:

    如果你有多個(gè)客戶端需要同時(shí)訪問數(shù)據(jù)庫中的數(shù)據(jù),特別是他們之間的數(shù)據(jù)操作是需要通過網(wǎng)絡(luò)傳輸來完成的。在這種情況下,不應(yīng)該選擇SQLite。由于SQLite的數(shù)據(jù)管理機(jī)制更多的依賴于OS的文件系統(tǒng),因此在這種操作下其效率較低。
    
    2. 數(shù)據(jù)量較大:

    受限于操作系統(tǒng)的文件系統(tǒng),在處理大數(shù)據(jù)量時(shí),其效率較低。對(duì)于超大數(shù)據(jù)量的存儲(chǔ),甚至不能提供支持。
    
    3. 高并發(fā):

    由于SQLite僅僅提供了粒度很粗的數(shù)據(jù)鎖,如讀寫鎖,因此在每次加鎖操作中都會(huì)有大量的數(shù)據(jù)被鎖住,即使僅有極小部分的數(shù)據(jù)會(huì)被訪問。換句話說,我們可以認(rèn)為SQLite只是提供了表級(jí)鎖,沒有提供行級(jí)鎖。在這種同步機(jī)制下,并發(fā)性能很難高效。
    
四、個(gè)性化特征:

    1. 零配置:

    SQLite本身并不需要任何初始化配置文件,也沒有安裝和卸載的過程。當(dāng)然也不存在服務(wù)器實(shí)例的啟動(dòng)和停止。在使用的過程中,也無需創(chuàng)建用戶和劃分權(quán)限。在系統(tǒng)出現(xiàn)災(zāi)難時(shí),如電源問題、主機(jī)問題等,對(duì)于SQLite而言,不需要做任何操作。
    
    2. 沒有獨(dú)立的服務(wù)器:

    和其他關(guān)系型數(shù)據(jù)庫不同的是,SQLite沒有單獨(dú)的服務(wù)器進(jìn)程,以供客戶端程序訪問并提供相關(guān)的服務(wù)。SQLite作為一種嵌入式數(shù)據(jù)庫,其運(yùn)行環(huán)境與主程序位于同一進(jìn)程空間,因此它們之間的通信完全是進(jìn)程內(nèi)通信,而相比于進(jìn)程間通信,其效率更高。然而需要特別指出的是,該種結(jié)構(gòu)在實(shí)際運(yùn)行時(shí)確實(shí)存在保護(hù)性較差的問題,比如此時(shí),應(yīng)用程序出現(xiàn)問題導(dǎo)致進(jìn)程崩潰,由于SQLite與其所依賴的進(jìn)程位于同一進(jìn)程空間,那么此時(shí)SQLite也將隨之退出。但是對(duì)于獨(dú)立的服務(wù)器進(jìn)程,則不會(huì)有此問題,它們將在密閉性更好的環(huán)境下完成它們的工作。
    
    3. 單一磁盤文件:

    SQLite的數(shù)據(jù)庫被存放在文件系統(tǒng)的單一磁盤文件內(nèi),只要有權(quán)限便可隨意訪問和拷貝,這樣帶來的主要好處是便于攜帶和共享。其他的數(shù)據(jù)庫引擎,基本都會(huì)將數(shù)據(jù)庫存放在一個(gè)磁盤目錄下,然后由該目錄下的一組文件構(gòu)成該數(shù)據(jù)庫的數(shù)據(jù)文件。盡管我們可以直接訪問這些文件,但是我們的程序卻無法操作它們,只有數(shù)據(jù)庫實(shí)例進(jìn)程才可以做到。這樣的好處是帶來了更高的安全性和更好的性能,但是也付出了安裝和維護(hù)復(fù)雜的代價(jià)。
    
    4. 平臺(tái)無關(guān)性:

    這一點(diǎn)在前面已經(jīng)解釋過了。和SQLite相比,很多數(shù)據(jù)庫引擎在備份數(shù)據(jù)時(shí)不能通過該方式直接備份,只能通過數(shù)據(jù)庫系統(tǒng)提供的各種dump和restore工具,將數(shù)據(jù)庫中的數(shù)據(jù)先導(dǎo)出到本地文件中,之后在load到目標(biāo)數(shù)據(jù)庫中。這種方式存在顯而易見的效率問題,首先需要導(dǎo)出到另外一個(gè)文件,如果數(shù)據(jù)量較大,導(dǎo)出的過程將會(huì)比較耗時(shí)。然而這只是該操作的一小部分,因?yàn)閿?shù)據(jù)導(dǎo)入往往需要更多的時(shí)間。數(shù)據(jù)在導(dǎo)入時(shí)需要很多的驗(yàn)證過程,在存儲(chǔ)時(shí),也并非簡簡單單的順序存儲(chǔ),而是需要按照一定的數(shù)據(jù)結(jié)構(gòu)、算法和策略存放在不同的文件位置。因此和直接拷貝數(shù)據(jù)庫文件相比,其性能是非常拙劣的。
    
    5. 弱類型:

    和大多數(shù)支持靜態(tài)類型的數(shù)據(jù)庫不同的是,SQLite中的數(shù)據(jù)類型被視為數(shù)值的一個(gè)屬性。因此對(duì)于一個(gè)數(shù)據(jù)表列而言,即便在聲明該表時(shí)給出了該列的類型,我們?cè)诓迦霐?shù)據(jù)時(shí)仍然可以插入任意類型,比如Integer的列被存入字符串'hello'。針對(duì)該特征唯一的例外是整型的主鍵列,對(duì)于此種情況,我們只能在該列中存儲(chǔ)整型數(shù)據(jù)。
    
    6. SQL語句編譯成虛擬機(jī)代碼:

    很多數(shù)據(jù)庫產(chǎn)品會(huì)將SQL語句解析成復(fù)雜的,相互嵌套的數(shù)據(jù)結(jié)構(gòu),之后再交予執(zhí)行器遍歷該數(shù)據(jù)結(jié)構(gòu)完成指定的操作。相比于此,SQLite會(huì)將SQL語句先編譯成字節(jié)碼,之后再交由其自帶的虛擬機(jī)去執(zhí)行。該方式提供了更好的性能和更出色的調(diào)試能力。


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
国产精品免费视频一区一| 影音av资源站| 在线午夜影院| 国产精品日日爱| 国产网友自拍电影在线| 在线国产91| 国产视频第一区| 国产青草视频在线观看视频| 尤物网址在线观看| av在线网页| 精品日韩av| 国产精品欧美色图| 91www在线观看| 亚洲妇熟xxxx妇色黄| 97在线超碰| 黄色av网站在线免费观看| av免费网站在线观看| www.狠狠操| 国产乱在线观看视频| 在线国产一区二区三区| av在线播放av| 中文字幕在线第一页| 精品国产免费观看一区| 日本视频三区| 国产成人精品综合网站| 欧美日韩在线精品成人综合网| 国产亚洲精品久久久久久青梅 | 精品免费视频一卡2卡三卡4卡不卡| 91桃色在线| 91超碰在线免费| 欧美日韩一区二区三区在线播放 | 国产三区视频在线观看| 热99在线观看| 91在线高清| 国产污视频在线| 中文字幕中文字幕在线中高清免费版 | 91这里只有精品| 日本中文字幕在线2020| 毛片视频免费观看| 久久一本精品| 97最新国自产拍视频在线完整在线看 | 国产福利在线看| 国产一卡2卡3卡四卡网站| 麻豆国产视频| 黄网址在线永久免费观看| 夜夜嗨yeyeh| jizz亚洲| 青青草视频免费在线观看| 天天干天天摸| 日本动漫理论片在线观看网站| 在线一区二区三区精品| 国产系列在线观看| 精品一区二区三区在线成人| 91社区在线观看| 91亚洲精选| 亚洲高清在线免费| 永久免费av网站| www在线视频| 五月婷婷在线观看| 精品国产福利一区二区在线 | 在线观看免费黄色| а√天堂www在线а√天堂视频| 欧美另类在线视频| 久热av在线| 国产毛片视频| 国产三级在线| 亚洲精品视频区| 天天爱天天色| 亚洲久草视频| 国产精品一区二区婷婷| 国产精品xxx电影| www.三区| 国产精品国产三级国产试看| 亚洲一本大道| 尤物在线网址| 日本视频三区| 97国产视频| 国产一二三在线观看| 国产www.大片在线| 国产原创av在线| 亚洲视频网站在线| 国产经典自拍视频在线观看| 久热国产在线| 日本成a人片在线观看| 国产三级在线| 国产麻豆一区二区三区精品| 亚洲国产aⅴ精品| 69视频在线| 国产系列在线观看| 国产免费黄网站| a中文在线播放| 精品黄色免费中文电影在线播放| 国产美女性感在线观看懂色av| 51成人精品网站| 国产在线你懂得| 本道综合精品| 亚洲激情丁香| 四虎一区二区三区| 性网站在线看| 不卡av免费观看| 久久av少妇| 二区三区中文字幕| 九九热免费在线视频| 免费看黄视频网站| 日本高清中文字幕| 狠狠干五月天| 国产视频精品久久| 国产va在线| 精品51国产黑色丝袜高跟鞋| 精品视频一二三| 亚洲视频在线网| h视频在线网站| 亚洲久草视频| 久久国产情侣| 国产小视频免费在线观看| 国产精品欧美韩国日本久久| 2020中文字幕在线播放| 99在线播放| 日本不卡视频一区二区| 交换国产精品视频一区| 成人精品福利| 国产成在线观看免费视频| 99久久精品免费观看国产| 在线播放www| 国产真实伦在线观看| 国产一区二区三区不卡免费观看 | 精品视频vs精品视频| 一级黄色av| 激情四房婷婷| 国产不卡精品一区二区三区| 在线免费日韩| 丁香花视频在线观看| 国产视频2区| 欧洲亚洲精品视频| 国产一二在线观看| 日本在线天堂| 伊人中文在线| 国产永久免费高清在线观看视频 | 国产精品视频福利一区二区 | 99久久99久久免费精品小说| 国产免费av高清在线| 精品国产白色丝袜高跟鞋| 国产美女自拍视频| 欧美a免费在线| 精品一区二区三区高清免费不卡| а√最新版地址在线天堂| 国产精品视频流白浆免费视频| а√最新版在线天堂| 在线视频三区| 国产日韩精品在线看| 激情在线视频播放| 亚洲成av人影片在线观看| 国产精品伦一区二区三区视频| 美女av在线播放| 午夜影院免费| 亚洲一区二区三区在线观看网站| 国产午夜视频在线观看| 丁香综合在线| 国产精品一区二区婷婷| 超碰免费在线| 四虎成人免费观看在线网址| 精品国产丝袜高跟鞋| √8天堂资源地址中文在线| 国产日韩网站| 国产h色视频在线观看| 91中文在线| 在线免费国产| 牛牛热在线视频| 国产91大片| 中文字幕在线永久在线视频| 久久精品最新免费国产成人| 久久精品视频观看| 导航福利在线| 国产福利在线观看| av免费在线免费| 在线视频中文字幕| 亚洲综合在线免费| www在线视频观看| 国产在线视频网站| 国产小视频福利在线| 国产porny蝌蚪视频| 日本天堂影院在线视频| 天堂在线中文资源| 18激情网站| 九九热在线视频| 国产二级c片l毛片| 亚洲精品视频在线免费| 国产美女一区视频| 伊人福利在线| 国产免费a∨片在线观看不卡| 国产黄网站在线观看| 92国产在线视频| 国产在线拍揄自揄拍视频| 国产精品伦一区二区三区视频| 亚洲精品aaaa精品| 国产私拍精品| 成 人免费视频播放| 精品视频一二三| 国内外激情在线| 香蕉视频网站在线播放|