(1),因为SQLite数据库是一个单一文件,当使用SQLite时,以下两种情况之间是否有区别?
使用应用程序对同一个数据库进行更新的-2用户
案例B -2对同一个数据库进行更新的WinForms应用程序(即Client/Server模型)
在阅读了以下关于SQLite FAQ - http://www.sqlite.org/faq.html#q5的FAQ问题之后,我就想到了这个问题--同一个应用程序的多个应用程序或多个实例可以同时访问单个数据库文件吗?
“多个进程可以同时打开同一个数据库……”
(2)在A (web应用程序)的情况下,连接到数据库的进程数是否= 1?如果是B(客户机/服务器),是2吗?
(3)对于案例A,如果SQLite数据库文件与web服务器位于同一台机器上,而不是在网络共享上的话,会有什么区别吗?
发布于 2011-03-12 01:02:43
多个进程可以同时读取数据库,执行查询等,但是写只能是一次一次。通常,打开数据库的第一个进程将写入数据库,而其他试图编写SQLITE_BUSY的进程将得到一个sqlite3_busy_handler()或sqlite3_busy_timeout() API函数。
请注意,在成功地写入sqlite之后,由同一数据库上的其他进程读取的数据现在可能会过时(缓存现在是不连贯的)。你需要处理这种情况。
案例A和B可能都是1或2:这取决于web应用程序和客户端服务器应用程序是并发地还是顺序地访问数据库。由于您不知道会发生什么情况,所以您应该假设并发访问并相应地处理。
sqlite数据库可以是网络共享的,锁定机制是内部的。
https://stackoverflow.com/questions/5280003
复制相似问题