gpt4 book ai didi

c# - 线程并发数据库查询是否安全?

转载 作者:行者123 更新时间:2023-11-30 13:03:04 25 4
gpt4 key购买 nike

我正在尝试改进我为工作编写的这个程序。最初我很匆忙,他们不关心性能或任何东西。因此,我做出了一个糟糕的决定:查询整个数据库(一个 SQLite 数据库),然后将结果存储在列表中以供我的函数使用。但是,我现在正在考虑让我的每个函数线程化,并让这些函数只查询它需要的数据库部分。大约有 25 个函数。我的问题是,这样做安全吗?另外,是否有可能有那么多并发连接?我只会从数据库中提取信息,而不会插入或更新。

最佳答案

我向我描述的方法[*] 是让每个并发线程打开自己的数据库连接,因为每个连接一次只能处理一个查询或修改.然后,具有连接的线程组可以轻松地执行并发读取。如果您遇到许多并发写入导致过度阻塞或无法获取锁的严重问题,那么您已经到了超出 SQLite 为您所做的事情的地步(并且应该考虑像 PostgreSQL 这样的基于服务器的数据库) .

请注意,如果这样更方便,您也可以让主线程打开工作线程的连接,但建议(为了您的理智起见,如果没有别的!)只实际使用每个连接来自一个线程。


[* 对于 SQLite 的正常构建。当然,可以在构建时关闭。]

关于c# - 线程并发数据库查询是否安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13754077/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com