MySQL分区表有哪些知识点
本篇内容介绍了“MySQL分区表有哪些知识点”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
MySQL分区表
1) 分区类型
?RANGE:范围应该连续但不重叠,使用VALUESLESS THAN 运算符进行定义。
?LIST:像在由RANGE进行分区一样,必须显式定义每个分区。
?HASH:对要插入表中的行的列值进行操作。
? KEY:与HASH 类似,不同之处在于仅提供要评估的一个或多个列并且MySQL服务器提供散列函数。它适用于所有允许的列类型。
?COLUMNS:RANGE和LIST分区上的变体。COLUMNS分区允许在分区键中使用一个或多个列。在以下情况时将考虑所有这些列:将行放入分区中,以及确定将检查哪些分区来匹配分区删改中的行。
-RANGE COLUMNS 和LISTCOLUMNS 分区支持使用非整数列(以及前面列出的其他数据类型)来定义值范围或列表成员。
? 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]> createtable tt(f1 int,f2 varchar(20)) partition by range(f1)
(
partition tt_p1 values lessthan(100),
partition tt_p2 values lessthan(1000),
partition tt_p3 values lessthan(10000),
partition tt_p4 values lessthan(maxvalue)
)
4) 查看表分区分区
(root@localhost) [mydb1]> showcreate table tt;
(root@localhost) [mydb1]> showtable status like 'tt' \G;
(root@localhost)[mydb1]> selecttable_name ,group_concat(partition_name) pn from information_schema.partitionswhere 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 进行分区时。
–通过LINEARHASH 或LINEARKEY 进行时。
“MySQL分区表有哪些知识点”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。