Cos*_*sta 5 sqlite wcf database-engine local-database
单用户数据库和多用户数据库有什么区别?为什么我需要使用单个用户数据库?为什么这么做?
如果我有多个线程使用相同的登录凭据同时访问同一个数据库,我是否需要一个多用户数据库?
单用户数据库和多用户数据库有什么区别?为什么我需要使用单个用户数据库?为什么这么做?
单用户模式仅允许在给定时刻与数据库建立一个连接.
由于您已将此问题标记为SQLite,因此我将基于该特定引擎进行回答.
SQLite的并发保护模型基于对磁盘上数据库文件的直接文件读取和写入,因此显然两个不同的程序无法在同一时间写入磁盘上的同一文件.SQLite将强制第二个查询在对数据库文件进行更改时等待.
当INSERTS和UPDATES完成时,SQLite使用操作系统文件锁来防止文件/数据库损坏.但它确实允许同时使用多个只读句柄(就像您可以在桌面上以只读方式多次打开同一个文件,但无法保存更改).
在其他数据库(如SQL Server)中,单用户模式通常仅在数据库需要维护时使用 - 例如还原备份文件,更改数据库结构或更改全局数据库设置.
单用户模式非常有用,因为在进行这些更改时,您无法连接客户端并尝试读取/写入数据.
但在正常情况下,出于性能原因,您不希望以单用户模式运行SQL Server.但是,除非您拥有大量的Web服务,否则SQLite可能能够处理性能要求,尽管在磁盘上一次更改一个.
如果我有多个线程使用相同的登录凭据同时访问同一个数据库,我是否需要一个多用户数据库?
不,它仍然有效.并且SQLite数据库根本不需要身份验证,除了文件/目录权限之外没有其他凭据.
| 归档时间: |
|
| 查看次数: |
8451 次 |
| 最近记录: |