很抱歉这个问题,我不知道我是否理解了这个概念,但是SQLite是无服务器的,这意味着数据库在本地机器中,它存储在一个文件中,这个文件只能在一种模式下访问:如果一个客户端读取它,它只能用于其他客户端的读取模式,如果一个客户端写入,那么所有客户端都有写入模式,所以一次只能在一种模式下访问! 假设我创建了一个Django应用程序,例如一个博客;那么这是如何使用sqlite实现的呢?因为如果客户端进入博客,他会进入阅读模式来查看页面和博客条目,如果注册的客户端试图添加 comments ,那么文件将被设置为写入模式,那么sqlite如何处理呢? 那么,SQLite是否就像BaseHTTPServer(Django附带的服务器)一样,用于测试和学习呢?

推荐答案

不同的数据库以不同的方式管理并发性,但在sqlite中,使用的方法是全局数据库级锁.一次只能有一个线程或进程对sqlite数据库进行更改;所有其他并发进程将被强制等待,直到当前运行的进程完成.

随着用户数量的增加;sqlite的简单锁定策略将导致日益激烈的锁定争用,您将需要将数据迁移到另一个数据库,例如MySQL(可以进行行级锁定,至少可以使用InnoDB引擎)或PostgreSQL(使用多版本并发控制).如果您预计会有大量的用户(比方说,在一天中的大部分时间里,每秒超过1个请求),那么您应该从sqlite迁移出go ;而且越早这样做,就越容易.

Django相关问答推荐

Django中的设计用户类

在Django的反向函数中添加动态URL

在Django管理中仅显示外键的特定值

在/Contact-Agent/Get()返回的多个对象返回了多个属性--它返回了2

无法在 docker 启动Django项目

Django REST序列化程序TO_REATION失败

错误``Forbidden (403) CSRF 验证失败.请求中止.``` 当try 登录管理员时

Django多对多关系报错:<title> object (None)>需要先设置id字段的值.

我如何获得已循环的每个项目的名称?

Django 仅预取相关模型的最新对象

在 Django Admin change_list 视图中更改 list_editable 字段时保存 Django 模型

如何让两个模型相互引用 Django

Django:无法从另一个应用程序导入模型

Django:想要将一个空字段显示为空白而不是显示无

Django 管理命令参数

Django:显示在每个页面上加载页面所花费的时间

如何在 Django Rest Framework SimpleRouter 上使斜杠可选

现在如何在 Django 中处理每个对象的权限?

如何在 django 中使用更少的 css?

Django:DoesNotExist从何而来?