- 我部署了一个typecho博客应用,我的项目和数据库不在一个服务器,每次刷新详情页要2秒左右加载完毕,我把数据库迁移到跟项目一个服务器,刷新详情页只需要200毫秒。
- 我看了下日志,时间主要浪费在执行sql那,执行的sql大概有20条左右,但数据量并不大,而且服务器A ping 服务器B延迟也很低,为什么速度差别会这么大?有什么办法解决?
- 已经尝试过在远程数据库配置加入
skip-name-resolve
并没有什么效果
刚刚又仔细看了下日志,总共执行了47条sql。。
刚刚又用python写了个脚本执行那47条sql,在本地执行脚本用时2秒左右,在数据库所在服务器执行用时167毫秒,看来是mysql的问题,跟php没关系
一个部署在腾讯云,一个阿里云,说明机器本身就跨机房,而且还可能跨地域,数据延迟是正常的,消耗的时间都在传输过程中,建议都部署在同一个服务器上吧。
正常企业会把应用和数据库部署在不同服务器,防止互相干扰,但前提是,应用服务器和数据库服务器是放在同一个机房,应用连接数据库直接走内网,一来是响应速度,二来是如果走外网本身就暴露一个数据库端口3306让人攻击。