成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術文章
文章詳情頁

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

瀏覽:524日期:2023-04-05 14:56:03

一、簡介:

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

    1). 管理簡單,甚至可以認為無需管理。
    2). 操作方便,SQLite生成的數據庫文件可以在各個平臺無縫移植。
    3). 可以非常方便的以多種形式嵌入到其他應用程序中,如靜態庫、動態庫等。
    4). 易于維護。

    綜上所述,SQLite的主要優勢在于靈巧、快速和可靠性高。SQLite的設計者們為了達到這一目標,在功能上作出了很多關鍵性的取舍,與此同時,也失去了一些對RDBMS關鍵性功能的支持,如高并發、細粒度訪問控制(如行級鎖)、豐富的內置函數、存儲過程和復雜的SQL語句等。正是因為這些功能的犧牲才換來了簡單,而簡單又換來了高效性和高可靠性。
   
二、SQLite的主要優點:

    1. 一致性的文件格式:

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

    由于SQLite在運行時占用的資源較少,而且無需任何管理開銷,因此對于PDA、智能手機等移動設備來說,SQLite的優勢毋庸置疑。
   
    3. 內部數據庫:

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

    可以充分利用SQLite提供SQL特征,完成簡單的數據統計分析的功能。這一點是CSV文件無法比擬的。
   
    5. 產品Demo和測試:

    在需要給客戶進行Demo時,可以使用SQLite作為我們的后臺數據庫,和其他關系型數據庫相比,使用SQLite減少了大量的系統部署時間。對于產品的功能性測試而言,SQLite也可以起到相同的作用。
       
三、和RDBMS相比SQLite的一些劣勢:

    1. C/S應用:

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

    受限于操作系統的文件系統,在處理大數據量時,其效率較低。對于超大數據量的存儲,甚至不能提供支持。
   
    3. 高并發:

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

    1. 零配置:

    SQLite本身并不需要任何初始化配置文件,也沒有安裝和卸載的過程。當然也不存在服務器實例的啟動和停止。在使用的過程中,也無需創建用戶和劃分權限。在系統出現災難時,如電源問題、主機問題等,對于SQLite而言,不需要做任何操作。
   
    2. 沒有獨立的服務器:

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

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

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

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

    很多數據庫產品會將SQL語句解析成復雜的,相互嵌套的數據結構,之后再交予執行器遍歷該數據結構完成指定的操作。相比于此,SQLite會將SQL語句先編譯成字節碼,之后再交由其自帶的虛擬機去執行。該方式提供了更好的性能和更出色的調試能力。

標簽: SQLite
相關文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
欧美日韩卡一卡二| 秋霞午夜鲁丝一区二区老狼| 一区二区日本视频| 日本在线不卡视频一二三区| 久久精品人人做人人爽人人| 米奇777在线欧美播放| 97se亚洲国产综合自在线| 五月天一区二区| 精品少妇一区二区三区日产乱码 | 欧美视频一区二| 91欧美一区二区| 蜜臀av一区二区在线观看| 日本一区二区动态图| 欧美男生操女生| 国产伦理一区| 欧美精品日本| 国产精品一区二区男女羞羞无遮挡| 伊人婷婷欧美激情| 久久免费视频一区| 欧美日韩在线免费视频| 亚洲成人直播| 国产91丝袜在线18| 香蕉影视欧美成人| 欧美喷水一区二区| 国产精品一页| 欧美日本不卡高清| 粉嫩蜜臀av国产精品网站| 午夜精品福利在线| 国产日韩高清在线| 欧美一三区三区四区免费在线看| 国产日韩1区 | 日韩精品一区二区三区中文不卡| 久久久久国产精品午夜一区| 激情欧美日韩一区| 不卡视频免费播放| 精品一区二区在线播放| 亚洲国产精品一区二区尤物区| 中文字幕精品在线不卡| 日韩免费高清视频| 欧美裸体bbwbbwbbw| 一本高清dvd不卡在线观看| 亚洲第一毛片| 欧美成人一品| 99v久久综合狠狠综合久久| 国产精品77777竹菊影视小说| 日本va欧美va欧美va精品| 洋洋av久久久久久久一区| 国产精品美女久久久久久2018| 久久中文娱乐网| 91精品国产美女浴室洗澡无遮挡| 欧美日韩亚洲国产综合| 色婷婷久久综合| 香蕉视频成人在线观看| av成人天堂| 黄色成人在线网址| 欧美视频1区| 91麻豆文化传媒在线观看| 国产成人亚洲综合a∨婷婷 | 欧美一二三区精品| 欧美日韩一区二区三区在线看| 色噜噜夜夜夜综合网| 免费久久久一本精品久久区| 一本色道久久综合亚洲精品高清| 狠狠色伊人亚洲综合网站色| 欧美人成网站| 欧美 日韩 国产 一区| 91麻豆成人久久精品二区三区| 粉嫩久久99精品久久久久久夜| 国产精品一区二区不卡| 国产一区二区三区免费观看| 久久国内精品视频| 久久国产精品一区二区| 久久精品国产亚洲a| 蜜桃久久精品一区二区| 婷婷激情综合网| 日韩精品1区2区3区| 日韩av电影免费观看高清完整版在线观看| 午夜伊人狠狠久久| 三级不卡在线观看| 美国毛片一区二区三区| 久久aⅴ国产欧美74aaa| 国产一区视频导航| 国产精品一区二区三区乱码| 国产91在线观看| 99视频一区二区三区| 99久精品国产| 午夜精品国产| 韩国一区二区三区在线观看| 亚洲国产网站| 欧美中日韩免费视频| 色婷婷久久久综合中文字幕| 欧美羞羞免费网站| 7777精品伊人久久久大香线蕉最新版 | 91精品国产色综合久久不卡电影| 91精品一区二区三区在线观看| 欧美一级片在线| 欧美不卡一二三| 久久蜜桃av一区精品变态类天堂| 国产欧美中文在线| 中文字幕一区av| 亚洲一区二区三区中文字幕在线 | 欧美二区乱c少妇| 日韩精品一区二区三区在线 | 国产在线成人| 一本色道久久综合亚洲精品不卡| 久久久久久久久久码影片| 在线精品视频一区二区三四 | 91视频91自| 欧美区亚洲区| 一本色道婷婷久久欧美| 麻豆91精品| 欧美日韩精品福利| 欧美精品一区二区三区在线| 国产精品欧美一区二区三区| 洋洋成人永久网站入口| 蜜桃视频一区二区三区在线观看| 国产经典欧美精品| 欧美精品观看| 亚洲一区二区精品在线| 一本大道久久a久久综合| 91精品久久久久久久91蜜桃 | 伊人久久综合| 香蕉久久夜色精品| 欧美日韩成人高清| 久久综合网色—综合色88| 亚洲欧美综合另类在线卡通| 石原莉奈在线亚洲三区| 国产精品亚洲午夜一区二区三区| 你懂的视频一区二区| 一区二区三区四区国产| 欧美性三三影院| 337p粉嫩大胆噜噜噜噜噜91av| 最新高清无码专区| 免费久久99精品国产| av亚洲精华国产精华精| 亚洲精品视频一区二区三区 | 一区二区国产视频| 美女视频黄久久| 成人小视频免费观看| 亚洲国产激情| 在线观看国产日韩| 久久免费视频一区| 亚洲午夜精品在线| 国产高清不卡一区二区| 欧美日韩午夜| 色先锋久久av资源部| 精品国内二区三区| 亚洲精品中文字幕在线观看| 老司机精品视频线观看86| 91美女在线看| 久久这里有精品15一区二区三区| 欧美电影免费观看高清完整版在线 | 亚洲久草在线视频| 九九视频精品免费| 欧美精品二区| 欧洲一区在线电影| 国产三级精品三级在线专区| 亚洲第一狼人社区| 成人国产精品免费观看视频| 99精品视频免费| 欧美日本一区二区三区四区| 国产精品沙发午睡系列990531| 蜜桃视频一区二区三区| 欧美成人中文| 欧美曰成人黄网| 中文字幕av在线一区二区三区| 日韩中文字幕不卡| 色综合夜色一区| 老司机精品久久| 国产无一区二区| 美女mm1313爽爽久久久蜜臀| 欧美日韩国产一区精品一区| 日本韩国欧美国产| 中文一区一区三区高中清不卡| 日本不卡视频在线观看| 欧美日韩大片一区二区三区 | 国产91精品一区二区麻豆亚洲| 亚洲久久视频| 欧美成人一级视频| 亚洲电影中文字幕在线观看| 成人18精品视频| 色婷婷综合久久久| 国产精品久久久久一区| 久久99精品国产麻豆婷婷洗澡| 精品二区视频| 欧美一区二区三区四区久久| 亚洲免费观看高清在线观看| 丁香一区二区三区| 久久久福利视频| 国产精品嫩草99a| 国产精品自产自拍| 亚洲一区中文| 国产亚洲精品aa| 精品午夜久久福利影院 | 天堂一区二区在线| 91在线视频观看| 欧美日韩成人高清| 亚洲一区在线电影| 亚洲欧美综合一区| 欧美日韩精品一区二区|