MySQL入门--分区表

本文介绍了MySQL中的分区表概念,包括常见的分区类型如RANGE、LIST、HASH等,并详细解释了如何创建分区表、验证服务器是否支持分区功能以及分区的相关限制。此外,还展示了通过SQL语句创建和查询分区表的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MySQL分区

1) 分区类型

? RANGE:范围应该连续但不重叠,使用VALUES LESS THAN 运算符进行定义。

? LIST:像在由RANGE 进行分区一样,必须显式定义每个分区。

? HASH:对要插入表中的行的列值进行操作。

? KEY:与HASH 类似,不同之处在于仅提供要评估的一个或多个列并且MySQL 服务器提供散列函数。它适用于所有允许的列类型。

? COLUMNS:RANGE 和LIST 分区上的变体。COLUMNS 分区允许在分区键中使用一个或多个列。在以下情况时将考虑所有这些列:将行放入分区中,以及确定将检查哪些分区来匹配分区删改中的行。

- RANGE COLUMNS 和LIST COLUMNS 分区支持使用非整数列(以及前面列出的其他数据类型)来定义值范围或列表成员。

? LINEAR:MySQL 还支持线性散列,其不同于常规散列,线性散列使用线性2 的幂算法,而常规散列使用散列函数值的模。


2) 确认服务器是否支持分区

Mysql>show plugins \G

Name: partition

Status: ACTIVE

Type: STORAGE ENGINE

Library: NULL

License: PROPRIETARY

禁用分区支持:

shell> mysqld --skip-partition

– partition 插件现在具有值DISABLED

3) 创建分区

(root@localhost) [mydb1]> create table tt(f1 int,f2 varchar(20)) partition by range(f1)

(

partition tt_p1 values less than(100),

partition tt_p2 values less than(1000),

partition tt_p3 values less than(10000),

partition tt_p4 values less than(maxvalue)

)

4) 查看表分区分区

(root@localhost) [mydb1]> show create table tt;

(root@localhost) [mydb1]> show table status like 'tt' \G;

(root@localhost)[mydb1]> select table_name ,group_concat(partition_name) pn from information_schema.partitions where table_schema='mydb1' group by table_name;

+------------+-------------------------+

| table_name | pn          |

+------------+-------------------------+

| tt         | tt_p1,tt_p2,tt_p3,tt_p4 |

+------------+-------------------------+


(root@localhost) [mydb1]> EXPLAIN PARTITIONS SELECT * FROM tt \G

*************************** 1. row ***************************

           id: 1

  select_type: SIMPLE

        table: tt

   partitions: tt_p1,tt_p2,tt_p3,tt_p4

         type: ALL

possible_keys: NULL

          key: NULL

      key_len: NULL

          ref: NULL

         rows: 1

     filtered: 100.00

        Extra: NULL

1 row in set, 2 warnings (0.00 sec)


5) 分区限制

? 常规

每个表的最大分区数为8192。

不支持空间类型。

不能对临时表进行分区。

不能对日志表进行分区。

? 外键和索引

不支持外键。

不支持FULLTEXT 索引。

无全局索引:每个分区都有各自的索引。

? 仅可能在以下情况下进行子分区:

通过RANGE 和LIST 进行分区时。

通过LINEAR HASH 或LINEAR KEY 进行时。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/16976507/viewspace-2132649/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/16976507/viewspace-2132649/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值