Code Bye

请教育,SQLite多个程序并发访问,需要加锁吗

程序结构是一个windows服务,一个winform用户界面,功能是windows服务会多线程读写数据库,这个有并发,而用户界面也可能读写数据库,人工操作并发概率不大,本人网上找了找,好像Sqlite3有并发问题,多线程要加锁,可问题是本人是两个进程并发访问数据库,不知道Sqlite3多进程并发访问是怎么样处理的?不会突然报错不给执行吧?
解决方案

8

SQLite 是单用户桌面数据库,如没有与其他程序共享数据的需求,应该放弃使用
而代之以可序列化的 DataTable
SQLite 的锁是文件级的,只要做到用完即关,一般不会发生冲突
另外 SQLite 内部的并发机制做的也比较完备了

8

引用 3 楼 niss 的回复:

CSDN越来越慢,也基本得不到答案了

sqlite 本人用过,假如超过200人并发不要用sqlite 本人试过,坑很大

8

SqlLite的简单的设计是通过在开始一个事务的时候锁定整个数据文件而完成的。
也就是说,事务时 会锁库。
另外,它的涉及目标是嵌入式设备。这应该不会有多大并发吧。

8

在语句具体编写上 下点工夫,也会尽可能避免的

8

建议你用SQL Server Compact Edition 4数据库,完美支持256个并发。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明请教育,SQLite多个程序并发访问,需要加锁吗