我正在运行一个由 Postgres 支持的 Drupal 站点。这是我第一次使用 Postgres 运行一些东西;我来自 MySQL 世界。
为了在站点上进行开发工作,我连接到 VPN 并通过具有 pg_hba.conf 中允许的 IP 的机器来隧道传输我的流量。
查询返回非常缓慢。我的日志告诉我在开发服务器上加载主页:
Executed 86 queries in 84.26 ms
在我的本地机器上(使用远程连接):
Executed 87 queries in 22368.05 ms
查询是 80% 的 SELECT,带有一些 INSERT INTO。
我也在数据库服务器上做了一些基本的调整,希望加快远程连接的速度(调整没有,但它确实使开发服务器的查询恢复得更快!)。
在服务器的 db 配置文件中,我关闭了 ssl,只允许来自 VPN 内的 localhost 和 ips 的连接。我正在通过 md5 对数据库用户进行身份验证。
可以通过此 VPN 进行延迟吗?或者它可能与从两个不同的地方使用相同的用户名/密码访问数据库的事实有关?
如果唯一的区别是本地与远程,那么问题必须是您的往返时间。实际的内部查询执行不知道使用的连接类型。但是我也想知道你是否也在不同的数据库上运行你的开发系统。在这种情况下,缓存可能会非常不同,也可能会产生重大影响。
我看到了一些解决这个问题的方法。第一个只是在您的开发系统上拥有该站点的数据库的开发副本。然后可以对这些数据进行清理,以便如果您的开发系统受到破坏或丢失(例如,假设它是一台笔记本电脑),数据暴露将降至最低。然后,您可以在一个系统上测试性能,该系统可以针对您的开发工作进行缓存,并且不会进行往返。
第二种方法是建立一个更快的隧道,并可能在 db 服务器上投入更多的 RAM。