MySQL分区表有哪些知识点

本篇内容介绍了“MySQL分区表有哪些知识点”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

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 进行时。

“MySQL分区表有哪些知识点”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注云搜网网站,小编将为大家输出更多高质量的实用文章!


【AD】美国洛杉矶/香港/日本VPS推荐,回程电信CN2 GIA线路,延迟低、稳定性高、免费备份_搬瓦工

【AD】炭云:36元/年/1GB内存/20GB SSD空间/500GB流量/5Gbps端口/KVM/香港/国际线路LUMEN