单用户数据库和多用户数据库有什么区别?为什么我需要使用一个用户数据库?为什么制造它?
如果我有多个线程使用相同的登录凭据同时访问同一数据库,是否需要一个多用户数据库?
单用户数据库和多用户数据库有什么区别?为什么我需要使用一个用户数据库?为什么制造它?
单用户模式在给定的时间仅允许与数据库的一个连接。
由于您已将此问题标记为SQLite,所以我的答案将基于该特定引擎。
SQLite的并发保护模型基于直接文件读写磁盘上的数据库文件,因此显然两个不同的程序不能在同一时间写入磁盘上的同一文件。当对数据库文件进行更改时,SQLite将强制第二个查询等待。
当完成插入和更新操作时,SQLite使用操作系统文件锁来防止文件/数据库损坏。但是它确实允许同时使用多个只读句柄(就像您可以在桌面上以只读方式多次打开相同文件一样,但是无法保存更改)。
在其他数据库(如SQL Server)中,单用户模式通常仅在需要维护数据库时才使用-例如还原备份文件,更改数据库结构或更改全局数据库设置。
单用户模式非常有用,因为在进行此类更改时,您将无法连接客户端并尝试读取/写入数据。
但是在正常情况下,出于性能原因,您不想在单用户模式下运行SQL Server。但是,除非您拥有大量的Web服务,否则即使一次在磁盘上进行一次更改,SQLite仍可能能够满足性能要求。
如果我有多个线程使用相同的登录凭据同时访问同一数据库,是否需要一个多用户数据库?
不,它仍然可以工作。而且SQLite数据库根本不需要身份验证,除了文件/目录权限外没有其他凭据。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句