当前位置: 首页 > article >正文

(c#)unity中sqlite多线程同时开启事务会导致非常慢

        在程序使用sqlite后,变慢了4秒.看看插入量,并不多,还开了事务,怎么都不可能卡上4秒.测了好久才发现,多线程一起开事务就变成单线程了.

        其实原先我就看到了这个说法,还测试过.当时测试发现速度很快,没受影响.我误以为是只有提交事务时才变单线程.原来是因为当时多线程使用的是同一个连接,所以没受影响.后来发现同一个连接在多线程一起用事务有时会报错,就改成了每个线程独立连接,然后从开启线程到提交的整个过程就会变成单线程.所以多线程中用事务的话要尽量缩短开启到提交的时间.我中间有大量其它代码,所以就很慢.

        因为害怕多线程一起修改时报错,sqlite相关的设置基本是默认的serialize这种.我看到说两个线程同时想要写数据库有可能发生死锁而报错,不敢开更不安全的设置.真要两个线程一起写就可能死锁而报错也太不安全了,不知道是一直这样还是已经修复了?有懂的没?

使用插件:Mono.Data.Sqlite 

补充:各线程使用独立连接时,即使已经努力缩短单个事务的连接,只要事务中有插入,我这程序依然非常慢.单独写个程序测试又没这种问题.搞不清原理.之后尝试用一个公共连接,用锁控制多线程访问,速度就很快了.


http://www.kler.cn/news/336106.html

相关文章:

  • (4)MATLAB生成CRC校验码
  • Unity各个操作功能+基本游戏物体创建与编辑+Unity场景概念及文件导入导出
  • Vue3-TS-Lodash:理解Lodash / 常用方法积累
  • 银行数字化转型导师坚鹏:2025年银行开门红绩效管理方法及案例
  • 家庭厨房的蟑螂消灭治理方法
  • 【机器学习-无监督学习】概率图模型
  • 毕业设计项目——基于transformer的中文医疗领域命名实体识别(论文/代码)
  • class 029 重要排序算法的总结
  • 数据分布过于集中 怎么办,python 人工智能 ,数据分析,机器学习pytorch tensorflow ,
  • 【C++】二叉搜索树+变身 = 红黑树
  • Python的几个高级特性
  • 谷粒商城のRabbitMQ基础篇
  • 制作离线版Koczkatamas工具包
  • 洛谷 P11045 [蓝桥杯 2024 省 Java B] 最优分组
  • Linux 系统 nvm 管理node无法使用
  • python爬虫 - 初识requests模块
  • 民锋金融:稳健发展的战略与未来展望
  • 代码随想录Day 62|Floyd 算法精讲、A \* 算法精讲 (A star算法),题目:97. 小明逛公园、127. 骑士的攻击
  • 关于BSV区块链覆盖网络的常见问题解答(下篇)
  • CRM如何和ERP融合,才能打破信息孤岛效应。