MySQL 分區(qū)技術(shù)(是mysql 5.1以版本后開始用->是甲骨文mysql技術(shù)團(tuán)隊維護(hù)人員以插件形式插入到mysql里面的技術(shù))
1、概述
數(shù)據(jù)庫單表到達(dá)一定量后,性能會有衰減,像mysql/sql server等猶為明顯,所以需要把這些數(shù)據(jù)進(jìn)行分區(qū)處理。同時有時候可能出現(xiàn)數(shù)據(jù)剝離什么的,分區(qū)表就更有用處了!
MySQL 5.1 中新增的分區(qū)(Partition)功能就開始增加,優(yōu)勢也越來越明顯了:
2、分區(qū)技術(shù)支持
在5.6之前,使用這個參數(shù)查看當(dāng)將配置是否支持分區(qū):
| mysql> SHOW VARIABLES LIKE '%partition%';+-----------------------+-------+|Variable_name | Value |+-----------------------+-------+| have_partition_engine | YES |+-----------------------+-------+ |
如果是yes表示你當(dāng)前的配置支持分區(qū)。 在5.6及以采用后,則采用如下方式進(jìn)行查看:
| 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的,表示支持分區(qū)。
3、分區(qū)類型及舉例
3.1范圍分區(qū)
RANGE 分區(qū):基于屬于一個給定連續(xù)區(qū)間的列值,把多行分配給分區(qū)。如時間,連續(xù)的常量值等 --按年分區(qū)
| mysql> use mytest;Database changedmysql> create table range_p( -> perid int(11), -> pername char(12) not null, -> monsalary DECIMAL(10,2), -> credate datetime -> ) partition by range(year(credate))( -> partition p2011 values less than (2011), -> partition p2012 values less than (2012), -> partition p2013 values less than (2013), -> partition p2014 values less than (2014), -> partition p2015 values less than maxvalue -> );Query OK, 0 rows affected (0.12 sec) |