MySQL 分区技术(是mysql 5.1以版本后开始用->是甲骨文mysql技术团队维护人员以插件形式插入到mysql里面的技术)
1、概述
数据库单表到达一定量后,性能会有衰减,像mysqlsql server等犹为明显,所以需要把这些数据进行分区处理。同时有时候可能出现数据剥离什么的,分区表就更有用处了!
MySQL 5.1 中新增的分区(Partition)功能就开始增加,优势也越来越明显了:
-
与单个磁盘或文件系统分区相比,可以存储更多的数据
很容易就能删除不用或者过时的数据
一些查询可以得到极大的优化
涉及到 SUM()/COUNT() 等聚合函数时,可以并行进行
IO吞吐量更大
分区允许可以设置为任意大小的规则,跨文件系统分配单个表的多个部分。实际上,表的不同部分在不同的位置被存储为单独的表。
2、分区技术支持
在5.6之前,使用这个参数查看当将配置是否支持分区:
| mysql> SHOW VARIABLES LIKE '%partition%'; +-----------------------+-------+ |Variable_name | Value | +-----------------------+-------+ | have_partition_engine | YES | +-----------------------+-------+ |
如果是yes表示你当前的配置支持分区。 在5.6及以采用后,则采用如下方式进行查看:
| mysql> SHOW PLUGINS; +----------------------------+----------+--------------------+---------+---------+ | Name | Status | Type | Library | License | +----------------------------+----------+--------------------+---------+---------+ | binlog | ACTIVE | STORAGE ENGINE | NULL | GPL | | mysql_native_password | ACTIVE | AUTHENTICATION | NULL | GPL | .................................................................................. | INNODB_LOCKS | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_LOCK_WAITS | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | partition | ACTIVE | STORAGE ENGINE | NULL | GPL | +----------------------------+----------+--------------------+---------+---------+ |
42 rows in set (0.00 sec) 最后一行,可以看到partition是ACTIVE的,表示支持分区。
3、分区类型及举例
3.1范围分区
RANGE 分区:基于属于一个给定连续区间的列值,把多行分配给分区。如时间,连续的常量值等 --按年分区










