原则:如果单表记录数超过3000万,或者数据量超过30G,宜进行分区。
单个分区,记录数不宜超过1000万,数据量不宜超过10G。
优点:查询性能提升
1、基本概念
分区的过程,是将一个表或索引分解为多个更小的、更便于管理的部分,从逻辑上而言(对应用层),看到的只是一个表,从物理上而言(数据库层),表可能由数十个物理分区(物理文件)组成,每个分区都是独立的对象。
Mysql支持的分区类型是水平分区,不支持垂直分区,且Mysql数据库的分区是局部索引,不支持全局索引(InnoDB存储引擎特性限制,索引即数据)
分区列必须是表的主键或唯一键的一部分,但如果建表时未指定主键或唯一索引,可以指定任意一列做分区列(不推荐)
如何判断当前mysql是否支持分区?
mysql> show variables like '%partition%'; +-------------------+-------+ | Variable_name | Value | +-------------------+-------+ | have_partitioning | YES | +-------------------+-------+ 1 row in set (0.00 sec)
MYSQL支持的分区类型有哪些?
1、RANGE分区
数据基于一个给定的连续区间的值,主要用于日期列的分区,如按年份来分区存放
分区键需处理为整数
基本语法:VALUES LESS THAN