有关linux下的sqlite3 问题,跪求大神帮忙看一下
最近在搞linux抓数据包进行信息提取,存储数据库的程序。程序流程大概是这样:
现在的问题是 程序 会 阻塞(应该是从1秒的那个程序返回到 主循环中之后),bt 看是进入sqlite3_mutex_enter()之后阻塞了,这种情况在数据包突发比较多的时候,或是连续一段时间数据包捕获的比较多的时候,容易阻塞。程序也只是一个进程,也没有多线程,有没有大神帮看一下程序对数据库的操作流程有没有什么问题,跪谢
sqlite3_exec(db, "begin transaction",0,0,0);
init_sigaction();
init_time(); //用来定时一秒执行数据库操作
while(1){
/*
code 从管道获取数据包的信息的一段程序
数据包每秒 大概几百 到两三千以上 不定
*/
sprintf(SQL,.....); //拼接 insert SQL语句
sqlite3_exec(db, SQL, 0, 0, &ErrMsg);
/*
code 分析数据包信息 存在一些数据结构中
*/
}
//这是每秒去执行的数据库一些操作
save_db()
{
sqlite3_exec(db, "commit transaction",0,0,&ErrMsg); //提交事务
sqlite3_exec(db, "begin transaction", 0, 0, &ErrMsg);
code...//执行一些其他操作
}
现在的问题是 程序 会 阻塞(应该是从1秒的那个程序返回到 主循环中之后),bt 看是进入sqlite3_mutex_enter()之后阻塞了,这种情况在数据包突发比较多的时候,或是连续一段时间数据包捕获的比较多的时候,容易阻塞。程序也只是一个进程,也没有多线程,有没有大神帮看一下程序对数据库的操作流程有没有什么问题,跪谢

...全文
相关推荐
sqlite3 安装包
sqlite3 可以解决svn cleanup 无效的问题,也可以作为一个轻型数据库用
SqlCe2SQLite:SqlCe2SQLite存储库
SqlCe2SQLite 将数据从SqlCE数据库(.sdf)复制到SQLite数据库(.db3)
sqlite-3.26.0-15.el8.tar.gz
# 适用操作系统:Centos8 #Step1、解压 tar -zxvf xxx.el8.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm
sqlite-autoconf-3080800.tar.gz
sqlite是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。它的设计目标是嵌入式的
sqlite3&libncurses.so文件4.4.2版本以下
需要注意的是sqlite3会有不同的版本,之前本人在网上下载的sqlite3文件在4.4.2系统上无法使用,提示libncurses.so匹配不上啥的。因此,我又上传了一个附件以备用。


其他数据库
