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

niss 2015-07-29 09:08:49
程序结构是一个windows服务,一个winform用户界面,功能是windows服务会多线程读写数据库,这个有并发,而用户界面也可能读写数据库,人工操作并发概率不大,我网上找了找,好像Sqlite3有并发问题,多线程要加锁,可问题是我是两个进程并发访问数据库,不知道Sqlite3多进程并发访问是如何处理的?不会突然报错不给执行吧?
...全文
1432 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
软件高手_2016 2016-06-03
  • 打赏
  • 举报
回复
我和楼主的需求是一样的 多线程时内部做线程同步就没有问题 但是窗口程序和系统服务之间还不知道怎么处理
梨花树下思考 2015-07-29
  • 打赏
  • 举报
回复
SqlLite的简单的设计是通过在开始一个事务的时候锁定整个数据文件而完成的。 也就是说,事务时 会锁库。 另外,它的涉及目标是嵌入式设备。这应该不会有多大并发吧。
编程有钱人了 2015-07-29
  • 打赏
  • 举报
回复
引用 3 楼 niss 的回复:
CSDN越来越慢,也基本得不到答案了
sqlite 我用过,如果超过200人并发不要用sqlite 我试过,坑很大
niss 2015-07-29
  • 打赏
  • 举报
回复
CSDN越来越慢,也基本得不到答案了
niss 2015-07-29
  • 打赏
  • 举报
回复
引用 1 楼 xuzuning 的回复:
SQLite 是单用户桌面数据库,如没有与其他程序共享数据的需求,应该放弃使用 而代之以可序列化的 DataTable SQLite 的锁是文件级的,只要做到用完即关,一般不会发生冲突 另外 SQLite 内部的并发机制做的也比较完备了
没有回答我的问题啊,我现在是用的Access数据库,发现多线程写入出现锁表现象,现在想换Sqlite3,可依然怕存在相同问题
xuzuning 2015-07-29
  • 打赏
  • 举报
回复
SQLite 是单用户桌面数据库,如没有与其他程序共享数据的需求,应该放弃使用 而代之以可序列化的 DataTable SQLite 的锁是文件级的,只要做到用完即关,一般不会发生冲突 另外 SQLite 内部的并发机制做的也比较完备了
卧_槽 2015-07-29
  • 打赏
  • 举报
回复
数据库自己会加锁。
zwbdabc 2015-07-29
  • 打赏
  • 举报
回复
建议你用SQL Server Compact Edition 4数据库,完美支持256个并发。
Ny-6000 2015-07-29
  • 打赏
  • 举报
回复
在语句具体编写上 下点工夫,也会尽可能避免的

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧