多线程连接数据库问题

大板牙花生 2020-11-23 04:06:37


是这个样子的。有一个设计需求:

数据库需要多线程进行并发读写,并且读写的SQL语句是动态的,这个能否借鉴多生产者-多消费者模式进行设计?或者是否有大侠能够指点下,有什么好的设计模式?数据库池化技术应该跟这个无关吧?
备注:
语言是C++。数据库是SQLITE。或者轻量级的不需要额外部署服务器的数据库。

求大神指点。
...全文
589 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2020-11-30
  • 打赏
  • 举报
回复
引用 12 楼 大板牙花生 的回复:
[quote=引用 9 楼 赵4老师 的回复:]数据库服务保证不同数据库连接之间不互相干扰。
如何解决多线程中脏读或者幻读的问题[/quote] 该加锁的地方加锁。
大板牙花生 2020-11-28
  • 打赏
  • 举报
回复
引用 9 楼 赵4老师 的回复:
数据库服务保证不同数据库连接之间不互相干扰。
如何解决多线程中脏读或者幻读的问题
赵4老师 2020-11-24
  • 打赏
  • 举报
回复
一个线程对应一个数据库连接。
yiyefangzhou24 2020-11-24
  • 打赏
  • 举报
回复
单个程序不是很多的话加个锁就行了
大板牙花生 2020-11-24
  • 打赏
  • 举报
回复
引用 3 楼 yiyefangzhou24 的回复:
sqlite不支持并发,你需要多少并发读写?
单用户多线程读写,并发数不一定多少。但是读写次数比较多频繁,需要实时更新结果
yiyefangzhou24 2020-11-24
  • 打赏
  • 举报
回复
sqlite不支持并发,你需要多少并发读写?
大板牙花生 2020-11-24
  • 打赏
  • 举报
回复
首先不是关心的优化问题 其次SQLITE并不支持并发读写的
引用 1 楼 yiyefangzhou24 的回复:
数据库内部已经有并发读写的优化,不需要使用者关心
SQLITE并不支持并发读写,我看了看大多是采用读写锁进行的。这只是保证读写是线程安全的,但并没有达到性能最优,这个是否有相关的思路参考。
oria2006 2020-11-24
  • 打赏
  • 举报
回复
实现一个代理,多线程写入的SQL语句都提交给代理的队列中,代理将队列中的SQL语句一条条写入到数据库中
赵4老师 2020-11-24
  • 打赏
  • 举报
回复
数据库服务保证不同数据库连接之间不互相干扰。
赵4老师 2020-11-24
  • 打赏
  • 举报
回复
先照做,然后有空再研究为什么。
大板牙花生 2020-11-24
  • 打赏
  • 举报
回复
首先不是关心的优化问题 其次SQLITE并不支持并发读写的
引用 6 楼 赵4老师 的回复:
一个线程对应一个数据库连接。
不是太理解啊。为何不可多个线程共用一个连接呢? SQLITE如果是多个线程多个连接的话,不是容易造成争抢资源吗?这个不是也需要事务吗? 有没有稍微详细的一些思路啊
yiyefangzhou24 2020-11-23
  • 打赏
  • 举报
回复
数据库内部已经有并发读写的优化,不需要使用者关心

5,530

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 模式及实现
社区管理员
  • 模式及实现社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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