社区
其他数据库
帖子详情
频繁更新sqlite3数据库导致数据库被锁定的问题!
qfpcn
2008-12-23 09:17:04
我是在linux下用c写的程序,用root用户执行。
我的程序中每1秒左右就需要向sqlite数据库中插入1条记录,每次大概插入1000条左右就会导致数据库被锁定"database is locked",请问达人如何解决?
注:问题解决了另外给分!
...全文
2841
14
打赏
收藏
频繁更新sqlite3数据库导致数据库被锁定的问题!
我是在linux下用c写的程序,用root用户执行。 我的程序中每1秒左右就需要向sqlite数据库中插入1条记录,每次大概插入1000条左右就会导致数据库被锁定"database is locked",请问达人如何解决? 注:问题解决了另外给分!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
skyjsq
2010-06-07
打赏
举报
回复
一个时间只能有一个query 操作数据库的,多线程的时候要特别注意
iihero
2010-06-07
打赏
举报
回复
[Quote=引用 11 楼 reer 的回复:]
由检查conn.Close()的返回值想到一个问题:
如果sqlite3_finalize()返回SQLITE_BUSY,那这时sqlite3 *p_stmt资源释放了吗?
[/Quote]
如果返回的是busy,肯定有资源没有被释放。
robotdeng
2010-05-13
打赏
举报
回复
单线程不会有锁定的问题。。。
肯定你是采用了多线程,每个线程打开一个connection。如果后一个线程访问时,前一个线程正在执行插入操作,所以就有问题了。
reer
2010-05-13
打赏
举报
回复
由检查conn.Close()的返回值想到一个问题:
如果sqlite3_finalize()返回SQLITE_BUSY,那这时sqlite3 *p_stmt资源释放了吗?
zzmwmh
2010-05-06
打赏
举报
回复
conn不关应该没事吧,不过不要重复的open应该没事吧,开阿关阿更浪费资源,1秒写一次应该不会有问题的
iihero
2010-05-06
打赏
举报
回复
[Quote=引用楼主 qfpcn 的回复:]
我是在linux下用c写的程序,用root用户执行。
我的程序中每1秒左右就需要向sqlite数据库中插入1条记录,每次大概插入1000条左右就会导致数据库被锁定"database is locked",请问达人如何解决?
注:问题解决了另外给分!
[/Quote]
1秒钟写1条,应该问题不大。
关键是你这个应用是多线程并发的吗?那就要注意了。
最好是单线程程序。
fuhanw
2010-04-20
打赏
举报
回复
仔细检查 conn.Close(); !
100%解决问题!
subarashii
2009-05-05
打赏
举报
回复
好像会遇到一些大量的频繁的写数据时,数据库会有问题。
你试试没操作一次都把下面这些东西关闭
stmt.close();
rset.close();
conn.close();
greenkiller
2009-01-13
打赏
举报
回复
我也正在用SQLite做点东西
受教
除了“使用事务方式将一分钟内的记录一起插入”方式,还有其他方法么?
shuifengcun
2009-01-02
打赏
举报
回复
没错
iisbsd
2009-01-02
打赏
举报
回复
如果有代码的话比较好。
ultraedit55
2008-12-31
打赏
举报
回复
ding
cdqy
2008-12-30
打赏
举报
回复
这么频繁的插入,最好是每一分钟,使用事务方式将一分钟内的记录一起插入.
cdqy
2008-12-30
打赏
举报
回复
sqlite3_busy_timeout( db, 200 ); //设置数据库超时等待时间200MS
SVN cleanup报错别慌!5分钟搞定wc.db
数据库
锁定
的终极方案
本文详细介绍了SVN cleanup报错时wc.db
数据库
锁定
的终极解决方案,特别推荐使用DB Browser for
SQLite
图形化工具安全清理work_queue表。同时提供了进阶的一键清理脚本和5个预防措施,帮助开发者高效解决SVN常见
问题
,避免数据丢失和重复检出。
SQLite
数据库
常见
问题
及解决方法
而在 WAL 模式下,虽然读操作一般不会被写操作阻塞,但当检查点(Checkpoint)操作进行时,也可能
导致
短暂的
锁定
。比如将字符串类型的数据插入到整数类型的列中,虽然
SQLite
可能不会报错,但数据的存储和后续使用会出现
问题
。不同版本的
SQLite
在功能、语法和性能上可能存在差异,当应用程序在不同版本的
SQLite
环境中运行时,可能会出现功能异常或错误。
数据库
文件损坏后,可能无法正常打开
数据库
,或者在执行查询、插入等操作时出现错误提示,如 “
数据库
磁盘映像格式错误”。
c#+mysql锁_C#:
SQLite
数据库
总是被
锁定
我写了一个简单的应用程序(称之为app1),它读取
SQLite
数据库
并在gridview中显示内容.我有一个单独的C#控制台应用程序(app2)需要写入同一个
数据库
.
问题
是app2因“
数据库
被
锁定
”错误而失败.我可以看到,一旦启动app1,就会创建一个userdb-journal文件.我假设
问题
是app1打开
数据库
但不释放它?这是我填充表I的代码,我绑定到app1中的网格.public DataT...
1Panel应用商店
数据库
锁定
问题
分析与解决方案
1Panel应用商店
数据库
锁定
问题
分析与解决方案 【免费下载链接】1Panel 新一代的 Linux 服务器运维管理面板 项目地址: https://gitcode.com/feizhiyun/1Panel ...
MoviePilot项目
数据库
锁定
问题
分析与解决方案
在MoviePilot v2.1.1版本的Docker环境中,用户报告了两个主要
问题
: 1. 资源搜索功能异常,表现为在最后几个站点卡住,界面显示"正在处理..."状态 2. 系统日志中
频繁
出现
数据库
锁定
错误:(
sqlite
3.OperationalError) database is locked ## 技术背景分析 ###
SQLite
数据库
锁定
机制
SQLite
作为轻量级
数据库
,采用文...
其他数据库
2,209
社区成员
9,519
社区内容
发帖
与我相关
我的任务
其他数据库
其他数据库开发 其他数据库
复制链接
扫一扫
分享
社区描述
其他数据库开发 其他数据库
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章