sqlite嵌入式資料庫間接及特性
SQLite (/ˌɛskjuːɛlˈlaɪt/[4] or /ˈsiːkwəl.laɪt/[5])是遵守ACID的關係資料庫管理系統,它包含在一個相對小的C程式庫中。與許多其它資料庫管理系統不同,SQLite不是一個客戶端/伺服器結構的資料庫引擎,而是被整合在使用者程式中。
SQLite遵守ACID,實現了大多數SQL標準。它使用動態的、弱型別的SQL語法。[6]它作為嵌入式資料庫,是應用程式,如網頁瀏覽器,在本地/客戶端儲存資料的常見選擇。它可能是最廣泛部署的資料庫引擎,因為它正在被一些流行的瀏覽器、作業系統、嵌入式系統所使用[7]。同時,它有許多程式設計語言的語言繫結
小型嵌入式,跟mysql差不多,但更小,功能也少,屬於本地資料庫多用於讀多寫少,100W以下的資料壓力不大,不支援分散式
該DBMS在同一時刻僅允許一個寫操作
SQLite是一款輕型資料庫,它遵守ACID,能夠嵌入到使用它的應用程式中。作為一個自包含的、基於檔案的資料庫,SQLite提供了非常出色的工具集能夠處理所有型別的資料,與託管在伺服器上基於程序的關係型資料庫相比它的約束更少,也更易用。
當應用程式使用SQLite時,SQLite並非作為一個獨立程序通過某種通訊協議(例如socket)與應用程式通訊,而是作為應用程式的一部分,應用程式通過呼叫
特徵
程式庫實現了多數的SQL-92標準,包括事務,以及實現原子性、一致性、隔離性和永續性(即ACID),但它缺失了某些特性。例如,它僅部分支援觸發器。儘管它支援大多數的複雜查詢,但它的ALTER TABLE功能有所限制,不能修改或刪除列,只能通過重新建立表的方式迂迴進行。
SQLite不進行型別檢查。你可以把字串插入到整數列中。某些使用者發現這是使資料庫更加有用的創新,特別是與無型別的指令碼語言一起使用的時候;然而其他使用者認為這是主要的缺點。
多個程序或執行緒可以同時訪問同一個資料而沒有問題。可以同時平行讀取同一個資料庫。但同一時間只能有一個程序或執行緒進行資料寫入;否則會寫入失敗並得到一個錯誤訊息(或者會自動重試一段時間;自動重試的邏輯以及重試時間的長短是可以設定的)。
程式設計者還提供了一個叫做sqlite3的獨立程式用來查詢和管理SQLite資料庫檔案。SQLite的使用者可以把這個程式當作如何寫SQLite應用程式的示例
SQLite的優點
- 基於檔案整個資料庫完全由磁碟上的一個檔案構成,這使得它的可移植性非常好。
- 標準化儘管它看起來像一個“簡化版”的資料庫實現,但是SQLite確實支援SQL。它省略了一些功能(RIGHT OUTER JOIN和FOR EACH STATEMENT),但同時也增加了一些額外的功能。
- 非常適合開發甚至是測試在大多數應用程式的開發階段,大部分開發人員可能都非常需要一個能夠支援併發擴充套件的解決方案。SQLite 包含豐富的功能,所能提供的特性超乎開發所需,使用起來也非常簡潔——只需要一個檔案和一個C連結庫。