Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQLite可以支持多个用户吗?_Sqlite - Fatal编程技术网

SQLite可以支持多个用户吗?

SQLite可以支持多个用户吗?,sqlite,Sqlite,我正在尝试开发一个基于Windows的应用程序,让多个用户同时访问同一个数据库。SQLite可以同时支持多个访问吗?SQLite在这方面是否稳定?是什么让SQLite比MS SQL CE更好或更差 谢谢。是的,SQLite可以同时支持多个用户。但是,它在写入时会锁定整个数据库,因此如果您有大量并发写入,那么它就不是您想要的数据库(通常数据库被锁定的时间只有几毫秒——因此对于大多数使用,这并不重要)。但是它经过了很好的测试,非常稳定(并且被广泛使用),所以你可以相信它 您可以阅读此简短文档,了解何

我正在尝试开发一个基于Windows的应用程序,让多个用户同时访问同一个数据库。SQLite可以同时支持多个访问吗?SQLite在这方面是否稳定?是什么让SQLite比MS SQL CE更好或更差


谢谢。

是的,SQLite可以同时支持多个用户。但是,它在写入时会锁定整个数据库,因此如果您有大量并发写入,那么它就不是您想要的数据库(通常数据库被锁定的时间只有几毫秒——因此对于大多数使用,这并不重要)。但是它经过了很好的测试,非常稳定(并且被广泛使用),所以你可以相信它

您可以阅读此简短文档,了解何时使用SQLite,何时不使用:

是。
从中:

多个进程可以同时打开同一个数据库。多个进程可以同时进行选择。但是,在任何时候,只有一个进程可以及时对数据库进行更改


如果并发写入是一个问题,您可能需要查看。SQLAPI与SQLite完全兼容。事实上,它包含了Berkeley DB存储引擎的SQLite executor top,它支持多个并发写操作

我发现它比MSSQL CE快得多。只是一个碰撞。因此,如果我们每100毫秒执行10个insert命令,并且每个命令的写入时间不到10毫秒,那么应该没有问题吧?因此,我猜服务器(apache)会以某种方式处理写入队列。此外,还存在提高并发性的方法,允许在写入过程中仍然进行读取。(但不允许并发写入,尽管一开始对此模棱两可:并发§中有一句话说明了这一点。)多个用户可能存在问题(如linux用户帐户)。它可能无法在WAL模式或使用共享内存时工作。我观察到.db shm和.db wal文件是以其他用户作为所有者和组创建的。这会阻止应用程序(以拥有.db文件的用户身份运行)进行事务处理。您是否愿意与我们分享您最终做了什么?谢谢。根据设计,“SQLite是嵌入式的,而不是客户端-服务器”-请参阅:。此外“SQLite支持无限数量的同时读卡器,但它在任何时刻都只允许一个写卡器。在许多情况下,这不是问题。作家排队。每个应用程序都能快速地完成数据库工作并继续运行,并且锁定时间不会超过几十毫秒。但有些应用程序需要更多的并发性,这些应用程序可能需要寻求不同的解决方案。”参考:&