当前位置: 首页 > MySQL数据库

MySQL分区表有哪些知识点

时间:2026-01-28 14:10:55

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的浮点数和定点数举例分析
下一篇:MySQL主线程状态举例分析
mysql
  • 英特尔与 Vertiv 合作开发液冷 AI 处理器
  • 英特尔第五代 Xeon CPU 来了:详细信息和行业反应
  • 由于云计算放缓引发扩张担忧,甲骨文股价暴跌
  • Web开发状况报告详细介绍可组合架构的优点
  • 如何使用 PowerShell 的 Get-Date Cmdlet 创建时间戳
  • 美光在数据中心需求增长后给出了强有力的预测
  • 2027服务器市场价值将接近1960亿美元
  • 生成式人工智能的下一步是什么?
  • 分享在外部存储上安装Ubuntu的5种方法技巧
  • 全球数据中心发展的关键考虑因素
  • 英特尔与 Vertiv 合作开发液冷 AI 处理器

    英特尔第五代 Xeon CPU 来了:详细信息和行业反应

    由于云计算放缓引发扩张担忧,甲骨文股价暴跌

    Web开发状况报告详细介绍可组合架构的优点

    如何使用 PowerShell 的 Get-Date Cmdlet 创建时间戳

    美光在数据中心需求增长后给出了强有力的预测

    2027服务器市场价值将接近1960亿美元

    生成式人工智能的下一步是什么?

    分享在外部存储上安装Ubuntu的5种方法技巧

    全球数据中心发展的关键考虑因素