WordPress 所处主机到数据库主机的往返时延显著影响页面加载时间。请看下面的实验:
WordPress 服务器信息
- 地域:Azure 东亚(香港)
- OPCache:开启
- Memcached:关闭(开启此项缓存可减半数据库查询次数)
- 耗时插件:https://cn.wordpress.org/plugins/query-monitor/
非独立数据库
数据库和 WordPress在同一个服务器上。

单个查询耗时极低。

独立数据库,同一地域
数据库使用独立的 b1ms mysql 服务器,也位于 Azure 东亚大区(香港),但是和 WP 主机不在一个可用性区域(也就是不在同一个机房)。

单个查询耗时约 2 毫秒左右,符合微软文档的可用性区域间延迟的描述。

独立数据库,不同地域
数据库使用独立的 b1ms mysql 服务器,位于 Azure 东南亚大区(新加坡)。
加载时间和延迟非常可观。

单个查询延迟大约 36 毫秒。

结论
通过以上对比,可以得出以下结论:
- WordPress 数据库查询近乎是串行,因此单次查询时延的增加能显著影响网站加载速度;
- 除非你的网站很大或者访问量很多,原本的主机经常满载,或者有负载均衡、镜像站等需求,否则不要吃饱没事干把 WordPress 数据库迁移到独立服务器上;
- 如果真的有迁移到独立数据库服务器的需求,延迟(物理距离)越低越好。
除了减少时延(对于使用独立服务器),还可以减少查询次数:
- 使用 Memcached。详见:WordPress 加速系列(2):memcached 加速数据库查询
- 降低“博客页面至多显示”的数量(减少首页加载时间)

Comments NOTHING