首页 > 代码库 > centos7-mysql-分区

centos7-mysql-分区

分区跟分表类似,目的是将一张表分到不通的存储中,这样可以减少单一磁盘IO占用,提高数据库效率
分区主要有两种形式
水平分区
对表的行进行分区,
垂直分区
减少表的宽度, 
想使用分区,需要先查看当前是否支持
show variables like ‘%partition%‘
出现yes即可使用
实例,按照range方式分区的表
create table if not exists  gao(id int primary key   auto_increment  , name varchar(30))  
default charset=utf8 auto_increment=1
partition by range(id)(
partition p0 values less than(10) data directory ‘/data/gao1‘,
partition p1 values less than maxvalue data directory ‘/data/gao2‘);
技术分享
alter table 表名 add partition (partition   名字   values   less  than  (n))   增加分区
alter table 表名 reorganize partition p1,p2,p3 into(partition p1 values less than(10)   ,   partition p2 values less than(20)) 合并分区
------------------------------------------------------------------------------------------------------------
使用list分区
partition by list(id)  是一个数字列
(partition p1 values in (1,3,5)
partition p2 values in (2,4,6));   每个分区表写入id值一样的,如果写入的数字分区表中没有则会报错,数值不能重复只能有一个.
---------------------------------------------------------------------------------------------------------------
分区跟分表的区别,
mysql的分表是真正的分表,一张表分成多个表,每个表都是完整的一张,都拥有三个文件,MYD数据文件,MYI索引文件,FRM表结构文件
分区是将一张表进行多个存放,还是一张表,不会变多,
分区跟分表是可以同时使用的!!!!不冲突
都是为了mysql提高性能
分表麻烦,需要单独创建分表,分区则不需要,会自动创建.

本文出自 “11627223” 博客,请务必保留此出处http://11637223.blog.51cto.com/11627223/1911978

centos7-mysql-分区