mysql 分区, 分库,分表

分区

什么是分区

将一个表拆解成多个区块。

分区的好处

  1. 进行逻辑数据分割,分割数据能有多个不同的物理文件路径;
  2. 可以存储更多的数据,突破系统单个文件最大限制;
  3. 提升性能,提高每个分区的读写速度,提高分区范围内的查询速度;
  4. 可以通过删除分区来快速删除数据,例如分区是按年份划分;
  5. 通过跨磁盘来分散数据,从而提高磁盘I/O性能;
  6. 涉及到SUM, COUNT等聚合函数,可以并行计算;
  7. 可以备份恢复独立分区,对大数据量有好处;

分区能支持的引擎

同一个表中的所有分区必须是同一个引擎;

查看是否支持分区

1
2
3
4
5
> show plugins;

+-------------------------------+----------+--------------------+---------+---------+
| partition | ACTIVE | STORAGE ENGINE | NULL | GPL |
+-------------------------------+----------+--------------------+---------+---------+

分区类型

  1. RANGE 分区;
  2. LIST 分区;
  3. HASH分区;
  4. KEY分区,类似HASH分区,由MySQL服务器提供其自身的哈希函数;

分表

好处

分库