使用Haskell的HDBC,我可以跨多个线程使用单个SQLite连接吗?

时间:2013-06-02 19:55:25

标签: database sqlite haskell concurrency hdbc

如果我想跨多个线程使用Haskell的HDBC从SQLite数据库查询(读取),我可以使用单个连接,还是应该每个线程都有自己的连接?感谢。

1 个答案:

答案 0 :(得分:1)

我搜索了hdbc-sqlite代码并找到了这个comment

  

处理变更计数的逻辑:查看之前的总变化   并在查询之后。如果它们不同,那么请查看本地更改。   (除非真的,否则本地更改计数器似乎不会更新   根据文档运行进行更改的查询。)

     

这是正确的线程,因为SQLite不支持使用给定的   无论如何,dbh在多个线程中。

官方Sqlite文档有关于此topic

的整页

FAQ说:

  

(5)可以多个应用程序或多个实例相同   应用程序同时访问单个数据库文件?

     

多个进程可以同时打开同一个数据库。   多个进程可以同时执行SELECT。但是只有   一个进程可以随时对数据库进行更改   然而,时间。

此信息将排除您的两种方法。也许你可以为此写一些测试来证明这些信息是错误的。