细节:
数据库:Postgres.
版本:9.6
主机:亚马逊RDS
问题:从快照还原后,数据库速度非常慢.
为什么: AWS称之为"第一次触摸惩罚".当新恢复的实例可用时,EBS卷附件已完成,但并非所有数据都已从S3迁移到连接的EBS卷.只有在最初"触摸"数据后,RDS才会意识到数据不在EBS卷上,而是需要从S3中取出数据.这完全破坏了我们的表现.我们也无法使用dd或fio预先触摸数据,因为RDS不允许访问已安装的EBS卷.
我做了什么:联系AWS支持.他们承认这是一个问题,他们正在研究它,唯一的解决方案是select *来自所有表格.
为什么我仍然需要帮助:该select *策略确实加快速度吧(我选择的一切,从public架构),但不如是必要的.所以我读到了postgres如何将数据存储到磁盘.磁盘上有很多东西,不会被用户定义的表中的简单选择"触及".
我的问题:仅限于SQL查询/函数而不能直接访问底层磁盘,我可以使用哪些最好的sql语句在磁盘上"触摸"以便将其加载到EBS上来自S3的音量?