我正在将Django与来自heroku的Postgres数据库一起使用。 heroku数据库有一个
“连接限制为20” 。
我不明白这是什么意思。
如何定义连接?每次用户访问我的网站,我都会得到一些数据库资料。因为我的网站需要连接到数据库才能获取此数据,所以这已经是连接了吗?
如果达到连接总数会怎样?网站仍然可以正常工作吗?
答案 0 :(得分:3)
您执行的每个查询都会与数据库建立连接。
例如,如果您想从数据库中获取一些数据,通常会发生以下情况:
1-您在Django级别执行查询。
2-Django会将您的查询转换为SQL。
3-Django创建与数据库的连接。
4-您的查询将在数据库中执行。
5-Django将收到结果。
6-Django将关闭连接。
该限制意味着您只能同时执行20到3到6步的任务。
如果您超过此限制,则您的应用程序将遇到错误,或者您的应用程序将尝试尝试直到建立连接为止(尝试次数受到限制,并且如果您也超过尝试次数,则会收到错误消息),这将导致您的应用程序变慢或因某些请求而中断。
您要么必须升级服务器/获得更多服务器,要么必须优化代码以进行更少的查询(例如,合并查询)。