由Oracle数据库迁移到分布式数据库之后,除了让尽量把需要关联的表按照相同的规则分布在一个节点外,现在系统的数据量都是5T以上的,不同的表已经按照不同的规则进行了分区,这些表之间的关联查询是应用必须要的而且频率很高,如果需要把所有的表按照统一规则去设置分布字段让同一用户下的资料都相同的节点上,这样的话改造就非常大,万一要回退也会非常麻烦,请问一下专家,这个问题还有没有其他好办法来解决复杂的关联查询的问题,又不会导致应用改造过大
由Oracle数据库迁移到分布式数据库之后,除了让尽量把需要关联的表按照相同的规则分布在一个节点外,现在系统的数据量都是5T以上的,不同的表已经按照不同的规则进行了分区,这些表之间的关联查询是应用必须要的而且频率很高,如果需要把所有的表按照统一规则去设置分布字段让同一用户下的资料都相同的节点上,这样的话改造就非常大,万一要回退也会非常麻烦,请问一下专家,这个问题还有没有其他好办法来解决复杂的关联查询的问题,又不会导致应用改造过大
稍微总结下要求:
1、关联查询是高频的
2、数据容量是5TB及以上,对于分布式关系型数据库产品而言是能力范围之内的,例如:本人做过的快递物流行业是单表超过4000亿行数据,且采用热璞数据库HotDB产品
3、水平分片表的数据分片字段 按业务需求来设计,不能增加数据架构设计难度、业务系统研发工作来且强迫全部表对象都按某一个字段来做数据分片。
建议如下:
1、要求分布式关系型数据库厂商从产品的功能、性能两个维度满足 多表关联查询,数据库产品厂商应该实现CBO来优化执行计划,也即不能选择一个垃圾产品而去欺负研发人员。
2、要求分布式关系型数据库厂商在数据分片维度提供功能实现数据分片类型、数据分片字段的自动推荐最佳实现,没有产品功能支撑就要求数据库产品厂商兜底服务。