详细介绍了SQLite的沃尔玛机制
一、什么是沃尔玛沃尔玛的全称是先写日志,这是一个实现原子事务在许多数据库机制,并介绍了SQLite在3.7.0版本。
二、沃尔玛是如何运作的
在介绍沃尔玛机制,SQLite使用回滚日志机制实现原子事务。
回滚日志机制的原理是:在一个数据库文件中修改数据,您将修改的页面,在另一个地方的数据备份,然后更改数据库文件;如果交易失败,备份数据复制回去,取消修改;如果交易成功,然后删除备份数据提交、修改。
该机制的原理是:更改不是直接写入数据库文件,而是写入另一个称为沃尔玛的文件;如果事务失败,则将拒绝记录,撤消更改;如果事务成功,将在稍后时间将其写入数据库文件。提交修订。
同步沃尔玛文件和数据库文件被称为检查点(checkpoint),它是由数据库自动执行的,默认的是沃尔玛当积累到1000页修改文件;当然,在适当的时候,也可以手动执行检查点,SQLite提供接口。在检查点执行,沃尔玛文件将被清空。
当时读,SQLite会在沃尔玛文件搜索,找到去年写的,记住它,而忽视了写作点后(确保读写和读可以并行执行);然后,数据页的决定是否读WAL文件,如果是的话,那么读取数据的WAL文件,如果没有,直接读取数据库中的数据文件。
在写作的时候,SQLite写入WAL文件,但必须保证独家写的,所以写不能并行执行。
在实现过程中,使用共享内存技术,因此所有读写过程必须在同一台机器上,否则,数据一致性就无法保证。
三和沃尔玛的优缺点
优势uff1a
1。读写可以并发执行,不能互相阻塞(但写仍然不同步)。
在大多数情况下,2.wal具有更好的性能(因为不需要在每个写两文件写)。
三.磁盘I/O行为更有可能被预测。
缺点:
1。访问数据库的所有程序必须位于同一主机上,并支持共享内存技术。
2。每个数据库现在对应于3个文件。
三.当数据达到GB级别时,数据库的性能将下降。
在4.3.7.0无法识别的数据库文件,使沃尔玛机制SQLite。
四与沃尔玛的相容性问题
启用后,数据库文件格式的版本号从1升级到2。因此,在3.7.0无法识别数据库文件,使沃尔玛机制SQLite。
禁用沃尔玛将恢复数据库文件格式的版本号为1,并可在SQLite 3.7.0版本鉴定。
五,沃尔玛引入的性能问题
总的来说,沃尔玛可以提高SQLite的成交业绩;然而,在一些极端的情况下,它可以导致在SQLite的交易业绩下滑。
1。在一个事务的执行时间或更长的时间内修改数据量达到GB级时,将被占用的文件占用,它将临时停止执行检查点(检查点空的文件),这将导致文件变大,增加寻址时间,最终导致读写的下降。
2。当检查点执行时,它会降低时间的读写性能,因此可能会导致周期性性能下降。
六。语用与沃尔玛接口
复制代码代码如下所示:
语用journal_mode
语用wal_checkpoint
语用wal_autocheckpoint
sqlite3_wal_checkpoint
sqlite3_wal_autocheckpoint
sqlite3_wal_hook