我有一个带有postgresql后端的PHP应用程序,使用PDO与数据库进行交互.它已经启动并运行了几个月,没有任何问题,但是今晚突然间,我在需要数据库连接的页面加载中遇到了持续的500错误,服务器的error.log文件显示如下:
PHP Fatal error: Uncaught exception 'PDOException' with message 'sqlSTATE[08006]
[7] FATAL: connection limit exceeded for non-superusers'
连接到数据库的用户的rollconnlimit为-1,因此这不是问题.
查询pg_stat_activity表时,看不到任何连接.
知道会是什么原因吗?我没有更改任何会导致或多或少的数据库连接的代码.
我很高兴发布一些代码,但是不确定在没有导致问题的原因的指导下要发布代码的哪些部分.
解决方法:
Postgres错误的直接原因可能是设置max_connections
.
但是,我在您的评论中读到的内容应该真的得到解决.最糟糕的情况是将每个记录都转到数据库,然后在应用程序中本地循环.
一次检索所有行并在应用程序中对其进行处理要好得多,但仍然不好.您应尽可能拥有数据库引擎处理数据,并且仅在应用程序中检索所需的结果.那就是数据库引擎擅长的.无需运送数据负载,而实际上只使用其中的一小部分.我wrote more here.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。