Python Django每个用户一个数据库还是一般一个?

Python Django每个用户一个数据库还是一般一个?,python,django,django-models,Python,Django,Django Models,我目前正在为我的网站编写一个聊天应用程序,通过使用外键引用发送者和接收者,将所有消息存储在一个数据库中。 这真的是最聪明的主意吗?我认为,当每个人都试图访问同一个数据库或发送的消息数量越来越多时,该网站可能会变得缓慢。每个用户使用一个数据库,将其信息存储在那里,是否会更智能/更快?如果是的话,我是对的,用Django实现这一点是不可能的 谢谢你的回答 每个用户使用一个数据库是否更智能/更快 可能不会,因为您仍将拥有相同数量的数据,并且只会有多个数据库实例的开销 用Django真的不可能做到这一点

我目前正在为我的网站编写一个聊天应用程序,通过使用外键引用发送者和接收者,将所有消息存储在一个数据库中。 这真的是最聪明的主意吗?我认为,当每个人都试图访问同一个数据库或发送的消息数量越来越多时,该网站可能会变得缓慢。每个用户使用一个数据库,将其信息存储在那里,是否会更智能/更快?如果是的话,我是对的,用Django实现这一点是不可能的

谢谢你的回答

每个用户使用一个数据库是否更智能/更快

可能不会,因为您仍将拥有相同数量的数据,并且只会有多个数据库实例的开销

用Django真的不可能做到这一点吗

Django不是一个数据库管理器,所以这个问题没有真正意义。例如,Oracle或SQLite允许单个查询访问多个数据库。因此,如果您将Oracle与Django一起使用,则每个用户可以拥有不同的数据库。无论如何,即使默认情况下Django只使用一个数据库连接,也可以将其配置为使用(感谢@Brunodesshuilliers提供的信息)

数据库设计是一项相当复杂的操作:您必须设计表来构造数据和索引,以加快某些访问和/或强制唯一性,并选择视图来简化请求编写。一旦完成(并且使用了数据库),您就必须定义定期任务来清理数据库(索引维护、归档和归档数据的清除)

如果您打算使用大量服务器来处理数千次同时访问,那么SQL数据库确实会成为瓶颈,您应该考虑使用NoSQL数据库在独立服务器上分配负载。但在这个用例中,Django只是一个铸造错误。无论如何,我不知道现实世界中的任何例子,其中多个数据库仅用于性能原因

每个用户使用一个数据库是否更智能/更快

可能不会,因为您仍将拥有相同数量的数据,并且只会有多个数据库实例的开销

用Django真的不可能做到这一点吗

Django不是一个数据库管理器,所以这个问题没有真正意义。例如,Oracle或SQLite允许单个查询访问多个数据库。因此,如果您将Oracle与Django一起使用,则每个用户可以拥有不同的数据库。无论如何,即使默认情况下Django只使用一个数据库连接,也可以将其配置为使用(感谢@Brunodesshuilliers提供的信息)

数据库设计是一项相当复杂的操作:您必须设计表来构造数据和索引,以加快某些访问和/或强制唯一性,并选择视图来简化请求编写。一旦完成(并且使用了数据库),您就必须定义定期任务来清理数据库(索引维护、归档和归档数据的清除)


如果您打算使用大量服务器来处理数千次同时访问,那么SQL数据库确实会成为瓶颈,您应该考虑使用NoSQL数据库在独立服务器上分配负载。但在这个用例中,Django只是一个铸造错误。不管怎么说,我不知道现实世界中使用多个数据库只是为了提高性能的例子。

有一些文章介绍了如何为聊天设计数据库。没有判断,但每个用户一个数据库似乎很疯狂,有更好的选择@谢谢你的回答,我会用谷歌搜索的。我问这个问题是为了让别人评判我的想法为每个用户完成db聊天是个坏主意。常规SQL数据库(如Postgres或MySQL)可以轻松处理每秒数千次的读/写操作。为了获得更高的性能,您可以升级RAM和CPU。还有其他数据库调整技术,如分片和缓存等。我不会这么早就担心性能。首先关注产品的运输。如果有那么多用户,您将有大量时间担心缩放问题。@xyres没问题。你认为,对于以后的工作,这种模式好吗?有一些关于如何设计聊天数据库的文章。没有判断,但每个用户一个数据库似乎很疯狂,有更好的选择@谢谢你的回答,我会用谷歌搜索的。我问这个问题是为了让别人评判我的想法为每个用户完成db聊天是个坏主意。常规SQL数据库(如Postgres或MySQL)可以轻松处理每秒数千次的读/写操作。为了获得更高的性能,您可以升级RAM和CPU。还有其他数据库调整技术,如分片和缓存等。我不会这么早就担心性能。首先关注产品的运输。如果有那么多用户,您将有大量时间担心缩放问题。@xyres没问题。你认为,对于以后的工作,这种模式好吗?谢谢我对同时访问数千次的计算并不乐观。因此,很高兴知道不同的数据库不会提高性能。我想我会坚持django和sgl。我找到了这个数据库结构。你认为这是个好主意吗。“当然,Django只使用一个数据库连接”=>您可能需要;-)(其他一切都很好)@Brunodesshuilliers:谢谢。我知道Django很聪明,但我不知道它有那么聪明。我已经编辑了我的帖子…@SergeBallesta pas de quoi;-)谢谢我对同时访问数千次的计算并不乐观。因此,很高兴知道不同的数据库不会提高性能。我想我会坚持django和sgl。我找到了这个数据库结构。你认为这是个好主意吗。“当然,Django只使用一个数据库连接”=>您可能需要;-)(其他一切都在你身上