SQLite是一個類似Access的輕量級資料庫系統,但是更小、更快、容量更大,並發更高。
為什麼說SQLite最適合做CMS系統呢?並不是說其他資料庫不好,Oracle、MySQL、SQLServer也都是非常優秀的DBS,只不過他們設計目標不同,特性不同,所以只有更適用某個應用情境,沒有絕對的好壞之分。
我歸納的中小型網站的CMS的特點如下:
1 資料量不超過10萬
2 日頁面訪問量不超過10萬
3 一部分網站全部產生靜態頁面,一部分網站即時查詢資料庫動態訪問
4 站長不懂技術,不懂得複雜的資料庫維護,只會用FTP管理網站
5 個人網站基本上是一個人管理,一般情況下只有一個人在訪問後台,沒有並發
6 對資料庫來說是讀多寫少,只有在站長訪問背景時候才會寫入
7 多運行於虛擬機器主機,大部分PHP主機均同時支援MySQL,小部分PHP主機需要單獨購買MySQL,PHP+MySQL的主機價格較PHP主機價格高。
(以萬網為例:最便宜的PHP空間780元,最便宜的PHP+MySQL的PHP空間1150元)
8 多數中小網站的HTTP服務與MySQL部署在同一伺服器上
SQLite的優點在中小網站CMS應用情境下表現突出:
與MySQL相比,它更徹底的免費,並且沒有任何使用上的限制
非常小巧,PHP5以上版本中無需任何配置即可支援SQLite
無需單獨購買資料庫服務,無伺服器處理序,配置成本為零
整個資料庫儲存在一個單個的檔案中,資料匯入匯出備份恢複都是複製檔案,維護難度為零
讀速度快,在資料量不是很大的情況下速度較快,更重要的是:省掉了一次資料庫遠程連結
沒有複雜的許可權驗證,開啟就能操作
SQLite的缺點在中小網站CMS應用情境下被規避:
並發低,動態訪問時當訪問量不超過10萬PV的時候,SQLite超過Access的並發能力已經綽綽有餘;產生靜態頁後更無需考慮資料庫的並發問題
在大資料量的情況下表現較差,但是中小網站一般情況下資料量不超過10萬,而SQlite在100萬資料量之下表現還不錯,因為省掉了對資料庫伺服器的遠端連線甚至會更快
寫入較慢,預設配置下的SQlite的寫入速度比MySQL慢了很多,但是CMS應用情境的寫入操作較少。在插入新文章的時候基本感受不到慢。集中的寫資料庫操作只有在安裝的時候會出現,不過只出現一次,可以忽略
為已有的表加索引較慢,但是在中小網站CMS中不會有這樣的需求,可以忽略
無法將MySQL部署到與前端機不同的伺服器上,但是中小網站也沒有分開部署的需求
綜上所述:在中小網站CMS的應用情境下SQLite能最大限度的降低建站成本,降低維護難度,又很好得規避了自身的缺點。所以我認為未來支援SQLite的CMS系統一定會大行其道。