mysql 数据库的分库分表详解

Posted 健康平安的活着

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql 数据库的分库分表详解相关的知识,希望对你有一定的参考价值。

一 数据库分库分表

1.1 概述分库分表

垂直分片:是从业务的维度进行划分,扩展了数据库连接数,提升数据库IO性能。

 2.水平分片:从数据维度切分,扩展单表的数量,提升数据库查询性能。

 水平分片从理论上突破了单机数据量处理的瓶颈,并且扩展相对自由,是分库分表的标准方案:

常用的分库分表的策略:

1.取模分片:优点:存放均匀,缺点:扩容需要大量数据迁移。

2.按范围分片: 优点:扩容不需要迁移数据。缺点:数据存放不均匀,容易产生数据倾斜。

3.根据业务场景,灵活定制分片策略。

1.2 垂直分库分表

#1.应用
1.在数据库设计时考虑垂直分库和垂直分表
2.随着数据库数据量增加,不要马上考虑做水平切分,首先考虑缓存处理,读写分离,使用索引等等。如果这些方式不能根本解决问题,在考虑水平分库和水平分表。

#2.分库分表问题
1.跨节点连接查询问题(分页、排序)
2.多数据源管理问题

 1.3 水平分库分表

以上是关于mysql 数据库的分库分表详解的主要内容,如果未能解决你的问题,请参考以下文章

MySQL分库分表

mysql分布式数据库的逻辑库物理库和分库分表和TDDL图文详解

分布式数据层中间件详解:如何实现分库分表+动态数据源+读写分离

170123数据库分库分表策略的具体实现方案

数据优化——分库分表概念及运用场景-详解

ShardingJDBC 分库分表详解