引用:SQLite適用的範圍

來源:互聯網
上載者:User

引用: http://www.sqlite.com.cn/MySqlite/5/100.Html

SQLite不同於其他大部分的SQL資料庫引擎,因為它的首要設計目標就是簡單化:

  • 易於管理
  • 便於使用
  • 易於嵌入其他大型程式
  • 易於維護和配置

 

許多人喜歡SQLite因為它的小巧和快速. 但是這些特性只是它的部分優點, 使用者還會發現SQLite是非常穩定的. 出色的穩定性源於它的簡單, 越簡單就越不容易出錯. 除了上述的簡單、小巧和穩定性外, 最重要的在於SQLite力爭做到簡單化.

簡單化在一個資料庫引擎中可以說是一個優點, 但也可能是個缺點, 主要決定於你想要做什麼. 為了達到簡單化, SQLite省略了一些人們認為比較有用的特性, 例如高並發性、 嚴格的存取控制、 豐富的內建功能、 預存程序、複雜的SQL語言特性、 XML以及Java的擴充, 超大的萬億層級的資料測量等等. 如果你需要使用上述的這些特性並且不介意它們的複雜性, 那麼SQLite也許就不適合你了. SQLite沒有打算作為一個企業級的資料庫引擎, 也並不打算和Oracle或者PostgreSQL競爭.

僅憑經驗來說SQLite適用於以下場合: 當你更看中簡單的管理、使用和維護資料庫, 而不是那些企業級資料庫提供的不計其數的複雜功能的時候,使用SQLite是一個比較明智的選擇. 事實也證明, 人們在許多情況下已經清楚的認識到簡單就是最好的選擇.

SQLite最佳試用場合

  •  

    網站

    作為資料庫引擎SQLite適用於中小規模流量的網站(也就是說, 99.9%的網站). SQLite可以處理多少網站流量在於網站的資料庫有多大的壓力. 通常來說, 如果一個網站的點擊率少於100000次/天的話, SQLite是可以正常啟動並執行. 100000次/天是一個保守的估計, 不是一個準確的上限. 事實證明, 即使是10倍的上述流量的情況下SQLite依然可以正常運行.

  •  

    嵌入式裝置和應用軟體

    因為SQLite資料庫幾乎不需要管理, 因此對於那些無人值守運行或無人工支援人員的裝置或服務, SQLite是一個很好的選擇. SQLite能很好的適用於手機, PDA, 機頂盒, 以及其他儀器. 作為一個嵌入式資料庫它也能夠很好的應用於用戶端程式.

  •  

    應用程式檔案格式

    SQLite作為傳統型應用程式的本地磁碟檔案格式取得了巨大成功.例如金融分析工具、CAD 包、檔案管理程式等等. 一般的資料庫開啟操作需要調用sqlite3_open()函數,並且標記一個顯式本地事務的起始點(BEGIN TRANSACTION)來保證以獨佔的方式得到檔案的內容. 檔案儲存將執行一個提交(COMMIT)同時標記另一個顯式本地事務起始點. 這種交易處理的作用就是保證對於應用程式資料檔案的更新是原子的、持久的、獨立的和一致的.

    資料庫裡可以加入一些臨時的觸發器,用來把所有的改變記錄在一張臨時的取消/重做日誌表中. 當使用者按下取消/重做按鈕的時候這些改變將可以被復原. 應用這項技術實現一個無限級的取消/重做功能只需要編寫很少的代碼.

  •  

    替代某些特別的檔案格式

    許多程式使用fopen(), fread(), 或 fwrite()函數建立和管理一些自訂的檔案用來儲存資料. 使用SQLite替代這些自訂的檔案格式將是一種很好的選擇.

  •  

    內部的或臨時的資料庫

    對於那些有大量的資料需要用不同的方式篩選分類的程式, 相對於編寫同樣功能的代碼, 如果你把資料讀入一個記憶體中的SQLite資料庫, 然後使用串連查詢和ORDER BY子句按一定的順序和排列提取需要的資料, 通常會更簡單和快速. 按照上述的方法使用內嵌的SQLite資料庫將會使程式更富有靈活性, 因為添加新的列或索引不用重寫任何查詢語句.

  •  

    命令列資料集分析工具

    有經驗的SQL使用者可以使用SQLite命令列程式去分析各種混雜的資料集. 原是資料可以從CSV(逗點分隔值檔案)檔案中匯入, 然後被切分產生無數的綜合資料報告. 可能得用法包括網站日誌分析, 運動統計分析, 編輯規劃標準, 分析實驗結果.

    當然你也可以用企業級的用戶端/伺服器資料庫來做同樣的事情. 在這種情況下使用SQLite的好處是: SQLite的部署更為簡單並且結果資料庫是一個單獨的檔案, 你可以把它儲存在磁碟片或者優盤或者直接通過email發給同事.

  •  

    在Demo或測試版的時候作為企業級資料庫的替代品

    如果你正在編寫一個使用企業級資料庫引擎的用戶端程式, 使用一個允許你串連不同SQL資料庫引擎的通用型資料庫後台將是很有意義的. 其更大的意義在於將SQLite資料庫引擎靜態串連到用戶端程式當中,從而內嵌SQLite作為混合的資料庫支援. 這樣用戶端程式就可以使用SQLite資料庫檔案做獨立的測試或者驗證.

  •  

    資料庫教學

    因為SQLite的安裝和使用非常的簡單(安裝過程幾乎忽略不計, 只需要拷貝SQLite原始碼或sqlite.exe可執行檔到目標主機, 然後直接運行就可以) 所以它非常適合用來講解SQL語句. 同學們可以非常簡單的建立他們喜歡的資料庫, 然後通過電子郵件發給老師批註或打分. 對於那些感興趣怎樣實現一個關係型資料庫管理系統(RDBMS)的高層次的學生, 按照模組化設計且擁有很好的注釋和文檔的SQLite原始碼, 將為他們打下良好的基礎. 這並不是說SQLite就是如何?其他資料庫引擎的精確模型, 但是很適合學生們瞭解SQLite是如何快速工作的, 從而掌握其他資料庫系統的設計實現原則.

  •  

    實驗SQL語言的擴充

    SQLite簡單且模組化的設計使得它可以成為一個用來測試資料庫語言特性或新想法的優秀的原型平台.

 

哪些場合適合使用其他的關係型資料庫管理系統(RDBMS)

  •  

    用戶端/伺服器程式

    如果你有許多的用戶端程式要通過網路訪問一個共用資料庫, 你應當考慮用一個用戶端/伺服器資料庫來替代SQLite. SQLite可以通過網路檔案系統工作, 但是因為和大多數網路檔案系統都存在延時, 因此執行效率不會很高. 此外大多數網路檔案系統在實現檔案邏輯鎖的方面都存在著bug(包括Unix 和windows). 如果檔案鎖沒有正常的工作, 就可能出現在同一時間兩個或更多的用戶端程式更改同一個資料庫的同一部分, 從而導致資料庫出錯. 因為這些問題是檔案系統執行的時候本質上存在的bug, 因此SQLite沒有辦法避免它們.

    好的經驗告訴我們, 應該避免在許多電腦需要通過一個網路檔案系統同時訪問同一個資料庫的情況下使用SQLite.

  •  

    高流量網站

    SQLite通常情況下用作一個網站的後台資料庫可以很好的工作. 但是如果你的網站的訪問量大到你開始考慮採取分布式的資料庫部署, 那麼你應當毫不猶豫的考慮用一個企業級的用戶端/伺服器資料庫來替代SQLite.

  •  

    超大的資料集

    當你在SQLite中開始一個交易處理的時候(交易處理會在任何寫操作發生之前產生, 而不是必須要顯示的調用BEGIN...COMMIT), 資料庫引擎將不得不分配一小塊髒頁(檔案緩衝頁面)來協助它自己管理復原操作. 每1MB的資料庫檔案SQLite需要256位元組. 對於小型的資料庫這些空間不算什麼, 但是當資料庫增長到數十億位元組的時候, 緩衝頁面的尺寸就會相當的大了. 如果你需要儲存或修改幾十GB的資料, 你應該考慮用其他的資料庫引擎.

  •  

    高並發訪問

    SQLite對於整個資料庫檔案進行讀取/寫入鎖定. 這意味著如果任何進程讀取了資料庫中的某一部分, 其他所有進程都不能再對該資料庫的任何部分進行寫入操作. 同樣的, 如果任何一個進程在對資料庫進行寫入操作, 其他所有進程都不能再讀取該資料庫的任何部分. 對於大多數情況這不算是什麼問題. 在這些情況下每個程式使用資料庫的時間都很短暫, 並且不會獨佔, 這樣鎖定至多會存在十幾毫秒. 但是如果有些程式需要高並發, 那麼這些程式就需要尋找其他的解決方案了.

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.