一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術(shù)及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數(shù)據(jù)庫技術(shù)|

服務器之家 - 數(shù)據(jù)庫 - Sqlite - SQLite教程(一):SQLite數(shù)據(jù)庫介紹

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

2020-06-08 17:49ZZVIPS Sqlite

這篇文章主要介紹了SQLite教程(一):SQLite數(shù)據(jù)庫介紹,本文講解了什么是SQLite、SQLite的主要優(yōu)點、和RDBMS相比SQLite的一些劣勢、個性化特征等內(nèi)容,需要的朋友可以參考下

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

一、簡介:

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

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

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

    1. 一致性的文件格式:

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

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

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

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

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

    1. C/S應用:

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

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

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

    1. 零配置:

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

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

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

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

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

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

延伸 · 閱讀

精彩推薦
  • Sqlite詳解SQLite中的查詢規(guī)劃器

    詳解SQLite中的查詢規(guī)劃器

    這篇文章主要介紹了詳解SQLite中的查詢規(guī)劃器,SQLite是一個開源的嵌入式數(shù)據(jù)庫,需要的朋友可以參考下...

    SQLite教程網(wǎng)8892021-10-25
  • SqliteSQLite中的WAL機制詳細介紹

    SQLite中的WAL機制詳細介紹

    這篇文章主要介紹了SQLite中的WAL機制詳細介紹,本文講解了什么是WAL、WAL如何工作、WAL的優(yōu)點與缺點、WAL引入的兼容性問題、WAL引入的性能問題等內(nèi)容,需要...

    dodo83402020-06-08
  • SqliteSQLite 內(nèi)存數(shù)據(jù)庫學習手冊

    SQLite 內(nèi)存數(shù)據(jù)庫學習手冊

    這篇文章主要介紹SQLite 內(nèi)存數(shù)據(jù)庫的使用方法, 需要的朋友可以參考下 ...

    SQLite教程網(wǎng)3292020-06-06
  • Sqlite基于sqlite特殊字符轉(zhuǎn)義的實現(xiàn)方法

    基于sqlite特殊字符轉(zhuǎn)義的實現(xiàn)方法

    本篇文章是對sqlite特殊字符轉(zhuǎn)義的實現(xiàn)方法進行了詳細的分析介紹,需要的朋友參考下 ...

    sqlite數(shù)據(jù)庫教程網(wǎng)4132020-06-04
  • SqliteSQLite速度評測代碼

    SQLite速度評測代碼

    SQLite 作為一個輕量級嵌入式數(shù)據(jù)庫,還是非常好用的。雨痕極力推薦~~~~~~ ...

    SQLite教程網(wǎng)5832020-06-01
  • SqliteSQLite 錯誤碼整理

    SQLite 錯誤碼整理

    這篇文章主要介紹了SQLite 錯誤碼,方便大家在開發(fā)過程中快速解決問題 ...

    SQLite教程網(wǎng)5532020-06-06
  • SqliteSQLite中重置自動編號列的方法

    SQLite中重置自動編號列的方法

    這篇文章主要介紹了SQLite中重置自動編號列的方法,本文講解了3種情況和其對應解決方法,需要的朋友可以參考下 ...

    dodo84492020-06-08
  • SqliteSQLite 入門教程三 好多約束 Constraints

    SQLite 入門教程三 好多約束 Constraints

    在上一篇隨筆的結(jié)尾,我提到了SQLite的約束, 但是在那里我把它翻譯成了限定符,不太準確,這里先更正一下,應該翻譯成約束更貼切一點。 那么什么是...

    SQLite入門教程4572020-06-05
主站蜘蛛池模板: 国产a一级毛片爽爽影院 | 5566中文字幕亚洲精品 | 九哥草逼网 | poverty中国老妇人 | 久久强奷乱码老熟女 | 性关系视频免费网站在线观看 | 97精品国产自在现线免费 | 国产乱子伦在线观看不卡 | 丝瓜视频黄色在线观看 | 国产精品一二三 | 好姑娘在线完整版视频 | 无码国产成人777爽死在线观看 | 3d动漫美女被吸乳羞羞有 | 国产极品美女在线 | 污丝瓜视频 | 国产精品亚洲va在线观看 | 19+韩国女主播激情vip视频在线 | 亚州日韩精品AV片无码中文 | 超h高h肉h文武侠 | 亚洲欧美国产另类视频 | 99久久无色码中文字幕 | 国产福利不卡 | 好大好硬快点好爽公 | 91蜜桃 | 免费成年视频 | 羞羞漫画视频 | 色综合视频一区二区观看 | 精品国产美女AV久久久久 | 国产精品一级视频 | 激情小视频 | 国产亚洲精品九九久在线观看 | 免费黄色小说 | 欧美黑人一级片 | 高清在线免费 | 亚洲第一国产 | 好大好硬好深好爽gif图 | 精品国产中文字幕在线视频 | pppd在线播放 | 小妇人电影免费完整观看2021 | 91久久偷偷做嫩草影院免费看 | 热久久免费 |