避免使用自然连接(natural join)。 尽量减少同数据库的交互次数,数据库更适合处理批量操作。 使用IN代替OR IN操作可以有效的利用索引,IN的值不要超过500个。 不使用反向查询,如:NOT IN、NOT LIKE 禁止使用 ORDER BY RAND() 进行随机排序。该操作会把表中所有符合条件的数据装载到内存中进行排序,消耗大量的CPU和IO及内存资源。推荐在程序中获取一个随机值,然后根据随机值从数据库获取数据。 在不需要去重的情况下,要使用UNION ALL代替UNION。
操作场景建立跨Region容灾关系,当主实例所在区域发生突发性自然灾害等状况,主节点无法连接,可将异地灾备实例升为主实例,在应用端修改数据库连接地址后,即可快速恢复应用的业务访问。实现原理在两个数据中心独立部署RDS for PostgreSQL实例,通过RDS的容灾功能将生产中心主实例中的数据同步到灾备中心灾备实例中,实现主实例和跨Region灾备实例数据之间的实时同步。 拓扑图注意事项使用该功能前,必须要确保跨Region数据库实例之间的网络打通(可考虑VPN连接产品)。
DRDS支持多种语言及客户端连接使用(需兼容MySQL协议),比如JAVA语言的MySQL JDBC。在连接使用过程,可能因为多种原因出现异常,下面列举了部分使用过程中的问题。 问题1: User xxx already has more than max_user_connections active connections 原因分析 DRDS当前连接数已经超过了最大连接数限制(单个节点默认是800,一个DRDS实例视规格可能有2至4个节点,因此整个实例大概限制1600至3200个连接数)。