传统分库分表(sharding)的缺陷与破解之法
标签
PostgreSQL , Greenplum , HybridDB for PostgreSQL , MPP , DIRECT-IO
背景
随着互联网的发展,数据爆炸性的增长,数据库逐渐成为了很多业务的绊脚石,很多业务也哭着喊着要上分布式数据库。
但是,传统的分库分表(sharding)带来的问题较多,得不偿失
传统分库分表问题
1、 扩容不方便(需要重分布数据)
2、 分布键变更很麻烦
3、 分布键选择(架构设计)需要谨慎,甚至很多sharding产品不支持多个分布键、或者不支持随机分布,导致业务不得不使用没有任何意义的自增序列来作为分布键。
4、 无法支持复杂查询。跨库JOIN性能差,甚至只能按分布键JOIN,其他字段不支持JOIN。(因为这种产品架构数据节点之间是孤岛,数据需要在孤岛之间交互,需要通过上层的中间件节点,而这样的话,如果有
