加入收藏 | 设为首页 | 会员中心 | 我要投稿 河北网 (https://www.hebeiwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

SQLite,多个应用措施可以同时会见单个数据库文件吗?

发布时间:2019-08-21 22:37:20 所属栏目:编程 来源:底层软件架构
导读:多个历程可以同时打开统一个数据库。多个历程可以同时执行SELECT。可是,只有一个历程可以随时对数据库举办变动。 SQLite行使读/写锁来节制对数据库的会见。(在Win95 / 98 / ME下,穷乏对读写锁的支持,而是行使概率模仿。)但请留意:假如数据库文件生涯在

多个历程可以同时打开统一个数据库。多个历程可以同时执行SELECT。可是,只有一个历程可以随时对数据库举办变动。

SQLite,多个应用措施可以同时会见单个数据库文件吗?

SQLite行使读/写锁来节制对数据库的会见。(在Win95 / 98 / ME下,穷乏对读写锁的支持,而是行使概率模仿。)但请留意:假如数据库文件生涯在NFS文件体系上,则此锁定机制也许无法正常事变。这是由于很多NFS实现城市粉碎fcntl()文件锁定。假如多个历程也许同时实行会见该文件,则应停止将SQLite数据库文件放在NFS上。在Windows上,Microsoft的文档说假如您没有运行Share.exe保卫措施,则在FAT文件体系下锁定也许不起浸染。对Windows有许多履历的人汇报我,收集文件的文件锁定长短常错误的,而且不行靠。

我们知道没有其他嵌入式 SQL数据库引擎支持与SQLite一样多的并发性。SQLite应承多个历程一次打开数据库文件,并应承多个历程一次读取数据库。当任何历程想要写入时,它必需在更新时代锁定整个数据库文件。但这凡是只必要几毫秒。其他流程只是守候作者完成然后继承他们的营业。其他嵌入式SQL数据库引擎凡是只应承单个历程一次毗连到数据库。

可是,客户端/处事器数据库引擎(如PostgreSQL,MySQL或Oracle)凡是支持更高级此外并发性,并应承多个历程同时写入统一数据库。这在客户端/处事器数据库中是也许的,由于总有一个精采节制的处事器历程可用于和谐会见。假如您的应用措施必要大量并发,那么您应该思量行使客户端/处事器数据库。但履历表白,大大都应用措施必要的并发性远低于计划职员的想象。

SQLite,多个应用措施可以同时会见单个数据库文件吗?

当SQLite实行会见由另一个历程锁定的文件时,默认举动是返回SQLITE_BUSY。您可以行使sqlite3_busy_handler()或sqlite3_busy_timeout() API函数从C代码调解此举动 。

【编辑保举】

  1. 分享一份适用的MySQL数据库巡检剧本,值得保藏
  2. SQLite3的数据范例-动态数据范例
  3. 怎样通过机能调优打破MySQL数据库机能瓶颈?
  4. 浅谈数据库同步和迁徙
  5. 这两个小能力,让SQL语句不只躲了坑,还晋升了1000倍
【责任编辑:赵宁宁 TEL:(010)68476606】
点赞 0

(编辑:河北网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读