mysql - AWS RDS 对远程请求的响应时间很长
问题描述
我们在两者上都托管了相同的网站:
- AWS EC2 实例
- 非 AWS 托管
两个站点都从 AWS RDS 数据库访问数据。
托管在 AWS 上的站点会立即加载包含数据库数据的页面,而托管在非 AWS 托管上的站点会在 60-90 秒内加载包含数据库数据的页面。
当数据库从 AWS RDS 复制到相同的非 AWS 托管时,站点页面会立即加载。
所以看起来问题出在从外部 aws(远程)位置访问 AWS RDS。
有没有办法以快速的方式远程从 RDS 获取数据,以及如何做到这一点?
解决方案
这里有许多因素需要评估:
- 您是否具有对 RDS 实例的入站访问权限(通过安全组),如果页面上提供的内容是静态的,您的应用程序可能看起来像它的加载,因此它可能是超时。
- 与我的第一点类似,RDS 实例可连接,请检查它是否具有可公开连接的端点,或者您是否有 VPN/Direct Connect 可以从您的 Web 主机连接到该实例(如果它是私有的)。
- 实例在哪个区域?它应该更靠近您的主机所在的位置,以避免每次查询在您的主机和数据库之间进行网络传输。(查看CloudPing)。请记住,每个查询都会有每个查询的延迟。
- 资源是否相同(CPU、内存和磁盘)。如果 AWS 中可用于数据库的资源较少,则在使用复杂查询时可能需要更长的时间。
推荐阅读
- reactjs - 如何在 cloudinary-react 视频组件上禁用下载按钮
- python - 重塑熊猫中的距离矩阵
- php - 文本流中的对齐
- javascript - 在Vue中使用循环创建数据数组
- css - 用于对 ipad、桌面、手机进行响应式网页设计的标题部分 css
- jquery - 如果鼠标悬停一秒钟则执行ajax函数,如果鼠标悬停则取消
- translation - ISO 369(德语)!= 639(英语)
- sql - SYSDATE 减去某些日期变量会返回不同的值
- prometheus - Prometheus - 如何重用过滤后的系列来加快查询时间?
- firebase - 数据建模和安全规则建议 firebase