Sqlite3 排队机制的应用

sqlite 是单线程的,在node-webkit软件中执行事务时再执行别的操作会失败。因此创建排队机制,所有执行等待事务执行完成再执行。应用了“sqlite3-transactions”库,方便快速的处理。在sqlite中事务执行前设置“PRAGMA synchronous=OFF;”会加快执行速度,特别是对大量数据批量操作的事务中。缺点是数据安全性差一点。如果在这个执行过程中程序强制退出或电脑断电等会造成数据丢失或损坏。另外如果表之间没有关联性,或没有关联查询的话,可以多分几个库,这样能提高数据库读写效率。库的应用sqlite3-transactions可以到github https://github.com/Strix-CZ/sqlite3-transactions/ 中去下载。

转载于:https://my.oschina.net/u/265765/blog/358853

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQLite3的锁机制主要分为共享锁(Shared Lock)、排他锁(Exclusive Lock)和共享-排他锁(Shared-Exclusive Lock)三种。 共享锁:当一个事务对某个表或某个表的某个部分加上共享锁时,其他事务也可以对该表或该部分加上共享锁,但是不能对该表或该部分加上排他锁。当一个事务对某个表或某个表的某个部分加上共享锁时,该事务可以读取该表或该部分的数据,但是不能修改该表或该部分的数据。 排他锁:当一个事务对某个表或某个表的某个部分加上排他锁时,其他事务不能对该表或该部分加上任何类型的锁。当一个事务对某个表或某个表的某个部分加上排他锁时,该事务既可以读取该表或该部分的数据,也可以修改该表或该部分的数据。 共享-排他锁:当一个事务对某个表或某个表的某个部分加上共享-排他锁时,如果其他事务已经对该表或该部分加上共享锁,则该事务只能等待其他事务释放该共享锁;如果其他事务已经对该表或该部分加上排他锁,则该事务只能等待其他事务释放该排他锁。当一个事务对某个表或某个表的某个部分加上共享-排他锁时,该事务既可以读取该表或该部分的数据,也可以修改该表或该部分的数据。 SQLite3的锁机制是基于多版本并发控制(MVCC)实现的,即每个事务都可以读取该表的旧版本,而不会被其他事务的修改所影响,同时也可以对该表进行修改,修改后的结果会被保存为新版本,其他事务可以读取到该表的新版本或旧版本。在MVCC机制下,SQLite3可以实现高并发和高效的读写操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值