说说MySQL中分库与分表的设计-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

说说MySQL中分库与分表的设计

Carice 2021-10-16 21:17:07 131

说说MySQL中分库与分表的设计

mysql分库分表 mysql表设计 mysql库设计 mysql设计 sql分库分表
分享到
取消 提交回答
全部回答(1)
  • 无敌小将
    2021-10-16 21:25:02

    您好,分库分表方案,分库分表中间件,分库分表可能遇到的问题

    分库分表方案:

    水平分库:以字段为依据,按照一定策略(hash、range等),将一个库中的数据拆分到多个库中。
    水平分表:以字段为依据,按照一定策略(hash、range等),将一个表中的数据拆分到多个表中。
    垂直分库:以表为依据,按照业务归属不同,将不同的表拆分到不同的库中。
    垂直分表:以字段为依据,按照字段的活跃性,将表中字段拆到不同的表(主表和扩展表)中。
    

    常用的分库分表中间件:

    sharding-jdbc(当当)
    Mycat
    TDDL(淘宝)
    Oceanus(58同城数据库中间件)
    vitess(谷歌开发的数据库中间件)
    Atlas(Qihoo 360)
    

    分库分表可能遇到的问题

    事务问题:需要用分布式事务啦
    跨节点Join的问题:解决这一问题可以分两次查询实现
    跨节点的count,order by,group by以及聚合函数问题:分别在各个节点上得到结果后在应用程序端进行合并。
    数据迁移,容量规划,扩容等问题
    ID问题:数据库被切分后,不能再依赖数据库自身的主键生成机制啦,最简单可以考虑UUID
    
    1 0
数据库
使用钉钉扫一扫加入圈子
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

相似问题
最新问题
推荐课程