mysql每10个人分表_MySQL分区、分表

分区和分表区别:每张数据表都包含三个文件,分别是.MYD数据文件、.MYI索引文件和.frm表结构文件;分表实际上是将表查分为几分每一份都会有自己独立的三个文件;表分区后仍然是一张表,只是增加了存放数据的区块;

并不是所有的存储引擎都支持分区,支持分区的有InnoDB、MyISAM、NDB等,不支持的有CSV、MERGE等;

分区类型

1、RANGE:某一列数据为连续的,将不同区间的列值分区,多用于日期列分区;

2、LIST:面向散列值分区;

3、HASH:根据用户自定义表达式的返回值进行分区,返回值不能为负,将数据均匀地分布到预先定义的分区中;

4、KEY:根据Mysql提供的哈希函数来进行分区;

注意:如果表中存在主键或者唯一索引,分区列必须是唯一索引的一个组成部分。

常用分区命令

// 查看是否启用分区

show variables like '%partition%';

show plugins;

/**

* RANGE分区

**/

create table t (

id int

)

partition by range(id)(

partition p0 values less than (10),

partition p1 values less than (10));

alert table t add partition(partition p2 values less than maxvalue);

// 查看每个分区具体信息

select * from information_schema.PARTITIONS where table_name='t';

// 利用分区查询,查询条件最好都在一个分区内

explain partitions select * from sales where date>='2018-01-01' and '2018-12-13';

/**

* LIST分区

**/

create table t (

id int

)

partition by list(id)(

partition p0 values in (1,3,5,7),

partition p1 values in (2,4,6));

/**

* HASH分区

**/

create table t (

id int

)

partition by hash(id)

partitions 4; // 4表示被分割成分区的数量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值