postgresql – 从快照恢复后,RDS实例速度非常慢
细节:
数据库:Postgres. 问题:从快照还原后,数据库速度非常慢. 为什么:AWS称之为“第一次触摸惩罚”.当新恢复的实例可用时,EBS卷附件已完成,但并非所有数据都已从S3迁移到连接的EBS卷.只有在最初“触摸”数据后,RDS才会意识到数据不在EBS卷上,而是需要从S3中取出数据.这完全破坏了我们的表现.我们也无法使用dd或fio预先触摸数据,因为RDS不允许访问已安装的EBS卷. 我做了什么:联系AWS支持.他们承认这是一个问题,他们正在研究它,唯一的解决方案是从所有表中选择*. 为什么我仍然需要帮助:select *策略确实加快了速度(我从公共模式中选择了所有内容),但没有那么多.所以我读到了postgres stores data to disk.在磁盘上有很多东西,不会被用户定义的表中的简单选择“触及”. 我的问题:仅限于SQL查询/函数而不能直接访问底层磁盘,我可以使用哪些最好的sql语句在磁盘上“触摸”以便将其加载到EBS上来自S3的音量?
我的建议是手动触发真空分析,这将对范围内的每个表进行全表扫描,以便用新的统计数据更新规划器.例如,如果在一个主机中有多个数据库,则可以相当容易地将此??范围仅限于某个模式,所讨论的数据库和Postgres模式可以帮助缩短总时间.
操作相当耗时,我不知道并行化的好方法.还有vacuumdb实用程序,但这只是运行一个带有vacuum语句的查询. 资料来源:几天前我问RDS支持这个问题. [1] https://www.postgresql.org/docs/9.5/static/sql-vacuum.html 编辑:稍后将在移动设备上重新格式化 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- libsqlite3.dylib与libsqlite3.0.dylib区别
- c如何在结构向量的一个字段上创建迭代器
- Sqlite 数据库的相关操作
- 记录一下SQLite里面的 时间日期函数
- reactjs – 如何在React中重定向到另一个路由时传递状态/道
- 【OpenCV笔记 16-2】OpenCV人脸检测和人眼检测之LBP分类器
- ruby-on-rails – 没有这样的文件加载 – rspec / matchers
- ruby-on-rails – 除非\u0026\u0026语句
- Could not load file or assembly'System.Data.SQLite.
- cocos2d-x屏幕适配原理分析