sqlite是一款輕量級的數據庫,提供了C/C++的API,在嵌入式領域應用廣泛。我是在Linux下利用sqlite的源碼編譯成動態庫,在我的代碼裏直接調用sqlite的接口,非常易於使用。
當我們把執行sqlite3_exec接口,插入數據的時候默認一條語句就是一個事務,數據會馬上寫入數據庫,再從接口返回,即有多少條數據就有多少次磁盤操作,在對性能要求高的場景下會是一個問題。sqlite提供了對事務進行控制的方法。當調用sqlite3_exec接口執行下面sql語句:
sqlite3_exec(dbHandle, "BEGIN TRANSACTION;", 0, 0, 0);
那麼在遇到下面語句:
sqlite3_exec(dbHandle, "END TRANSACTION;", 0, 0, 0);
之前對數據庫的操作都會被記錄,直到遇到END TRANSACTION才真正地作爲一組事務執行。