現在開始使用sqlite

edited 十月 2013 in 資料庫
  SQLite是一款輕型的數據庫,它的設計目標是嵌入式的,而且目前已經在很多嵌入式産品中使用了它,它占用資源非常的低,在嵌入式設備中,可能只需要幾百K的內存就夠了。它能夠支持Windows/Linux/Unix等等主流的操作系統,同時能夠跟很多程序語言相結合,比如Tcl、PHP、Java等,還有ODBC接口,同樣比起Mysql、PostgreSQL這兩款開源世界著名的數據庫管理系統來講,它的處理速度比他們都快。
  SQLite雖然很小巧,但是支持的SQL語句不會遜色于其他開源數據庫,它支持的SQL包括:
  ATTACH DATABASE
  BEGIN TRANSACTION
  comment
  COMMIT TRANSACTION
  COPY
  CREATE INDEX
  CREATE TABLE
  CREATE TRIGGER
  CREATE VIEW
  DELETE
  DETACH DATABASE
  DROP INDEX
  DROP TABLE
  DROP TRIGGER
  DROP VIEW
  END TRANSACTION
  EXPLAIN
  expression
  INSERT
  ON CONFLICT clause
  PRAGMA
  REPLACE
  ROLLBACK TRANSACTION
  SELECT
  UPDATE
  同時它還支持事務處理功能等等。也有人說它象Microsoft的Access,有時候真的覺得有點象,但是事實上它們區別很大。比如SQLite支持跨平台,操作簡單,能夠使用很多語言直接創建數據庫,而不象Access一樣需要Office的支持。如果你是個很小型的應用,或者你想做嵌入式開發,沒有合適的數據庫系統,那麽現在你可以考慮使用SQLite。目前它的最新版本是 3.2.2,它的官方網站是:http://www.sqlite.org,能在上面獲得源代碼和文檔。同時因爲數據庫結構簡單,系統源代碼也不是很多,也適合想研究數據庫系統開發的專業人士。

最近被sqlite的好用嚇到,我的簡易blog:http://code.google.com/p/goolog/ 本來是使用flat-file現在改為sqlite
完全不成問題,在此推薦大家換用sqlite。(mysql還是難用,flat﹍file難維護,xml速度慢,sqlite才是王道)

原始討論: http://twpug.net/x/modules/newbb/viewtopic.php?topic_id=5394

評論

  • edited 九月 2010
    Access 也可以用在其他平台喔 !
    其他平台早有 ODBC Driver , 如果是 .NET , 亦有 mono 有 driver , 不需要甚麼 office 的
    http://www.mono-project.com/OLE_DB
    當然 Access 不適合多個應用程式同時使用倒是真的

    SQLITE 有其效能上的優點沒錯 , 但 MySQL 會難用我倒是覺得不可思議
    我覺得 SQLite 的限制就是不支援網路連線 , 舉凡系統架構需要 Master/Slave or Cluster 去平衡負載或無損效能的備份 , SQLite 現在還做不到
    當然也有其他人發展出 SQLITE 的網路版 , 但都非本體 , 有點像加掛一個 Proxy , 也有點像過去 Access 加掛一個 MDSE , 但也還無法做到 Master/Slave
    如果一開始目標就是用在 embedded , 或系統的負載評估後未來不會很重 , 那用 SQLite 是真的不錯
    如果是有考慮到網站會越來越大 , 一開始選資料庫時還是應該選符合未來期望的資料庫 , 免得系統重作喔
  • edited 九月 2010
    我也是覺得依照未來需求來選擇資料庫會比較好..

    SQLITE效能上優點沒想像中的強...看介紹文像是黑水溝另一邊發的...

    我分享一下我的經驗
    我的OpenBluewhale專案裡..
    在安裝的時候,會由定義的xml檔案
    依照選擇的資料庫來建立資料表和塞入預設資料..

    mysql 咻一下就安裝完了..
    mssql 次之
    oracle 還能接受...
    sqlite 『幹...』

    安裝是..mysql和sqlite同一台...
    但sqlite可以慢到飆髒話...
    就慢到從我們公司到高美溼地買香腸回來吃~也還沒安裝好..
    這是insert的部分..
    select的部分我覺得都可以接受...但還是有些微感覺有慢一點點..

    所以在少量或單機的狀況下,使用sqlite開發是不錯的選擇
    對於使用者,這樣效能是能接受的。
    對於開發者,功能強﹑簡易使用﹑維護也方便
  • edited 九月 2010
    SQLite 寫入速度應該是很快的才對
    只是要注意就是
    如果是大量寫入
    最好用 Begin Transaction , 這點倒是和 PostgreSQL 挺像的

    Unless already in a transaction, each SQL statement has a new transaction started for it. This is very expensive, since it requires reopening, writing to, and closing the journal file for each statement.

    另外
    PRAGMA cache_size 也很重要
    其實下面網站都有寫了
    http://web.utk.edu/~jplyon/sqlite/SQLite_optimization_FAQ.html#pragma-cache_size

    MySQL 不去 Tune 的時候 , 有很多時候也挺慢的
  • edited 九月 2010
    其實php5有加入sqlite,而且預設是開啟的。
    所以安裝玩php5,就可直接使用。
Sign In or Register to comment.