MySQL分区、分表

2019-04-11  本文已影响0人  yzw12138

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

分区类型

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

常用分区命令

// 查看是否启用分区
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表示被分割成分区的数量


上一篇 下一篇

猜你喜欢

热点阅读