开发者社区> 问答> 正文

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

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

展开
收起
Carice 2021-10-16 21:17:07 835 0
1 条回答
写回答
取消 提交回答
  • 网络规划设计师、敏捷专家、CISP、ITSS服务经理、ACA全科目、ACP4项、ACE、CBP、CDSP、CZTP等。拥有 PRINCE2 Foundation/Practitioner、CCSK、ITIL、ISO27001、PMP等多项国际认证。 专利5+、期刊10+、知识产权师。核心期刊审稿人。

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

    分库分表方案:

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

    常用的分库分表中间件:

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

    分库分表可能遇到的问题

    事务问题:需要用分布式事务啦
    跨节点Join的问题:解决这一问题可以分两次查询实现
    跨节点的count,order by,group by以及聚合函数问题:分别在各个节点上得到结果后在应用程序端进行合并。
    数据迁移,容量规划,扩容等问题
    ID问题:数据库被切分后,不能再依赖数据库自身的主键生成机制啦,最简单可以考虑UUID
    
    2021-10-16 21:25:02
    赞同 1 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
One Box: 解读事务与分析一体化数据库 HybridDB for MySQL 立即下载
One Box:解读事务与分析一体化数据库HybridDB for MySQL 立即下载
如何支撑HTAP场景-HybridDB for MySQL系统架构和技术演进 立即下载

相关镜像