mysql如何查看当前分区表的情况?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql如何查看当前分区表的情况?相关的知识,希望对你有一定的参考价值。

参考技术A

1、查看当前mysql数据库是否支持分区,可以利用命令:show variables like '%partition%'。

2、判断当前数据库版本是否安装了分区插件,利用命令show plugins。

3、创建数据库表并建立表分区,利用命令,结果发现报错。

4、修改创建数据库表主键设置,将其去掉,再次运行命令。

5、查看某张表是不是分区表,可以利用命令show table status。

6、就可以查看具体数据库下的某张表的分区情况了。

MySQL分区表简介

参考技术A 我们的业务只存近一段时间的数据,因此有大量表需要清理 历史 数据,目前使用的delete清理数据,存在以下问题。为避免同时支持大量delete,我们的清理任务只在低峰期串行执行,导致任务过多时需要排队,甚至失败的情况;数据清理使用delete语句,表数据量较大时,对数据库造成很大压力;即使我们删除了旧数据,已删除的数据仍占据存储空间,底层数据文件并没有立刻变小,以至于形成数据空洞。

查看MySQL官方文档时,发现了分区表,因此基于官方文档总结一下。

MySQL逻辑上为一个表,物理上存储在多个文件中,这是 MySQL 支持的功能(5.1 开始), 8.0 版本只 InnoDB 和 NDB 支持分区表。

优点:

缺点:

根据分区表键值的范围把数据存储到表的不同分区中,适用于以时间或日期作为分区类型,方便数据清理。

小提示:

1.当插入数据分区不存在时会报错:Table has no partition for value xxx;

2.Range类型分区字段必须是数值,时间类型可用函数转换为数值;

3.分区字段列值可以为null,所有为null的数据将存在最小的分区中;

按分区键取值的列表进行分区,每一行数据须找到对应的分区列表,否则数据插入失败

小提示:

根据指定分区表达式的整数值以及分区数进行数据划分(mod函数)

小提示:

按键分区类似于按哈希分区,只是哈希分区使用用户定义的表达式,用于键分区的哈希函数由 MySQL 服务器提供。NDB 集群为此使用 MD5() ; 对于使用其他存储引擎的表,服务器使用自己的内部哈希函数。

小提示:

子分区(subpartitioning)也称为复合分区(composite partitioning) ,是已分区表中每个分区的进一步划分

小提示:

小提示:

以上是关于mysql如何查看当前分区表的情况?的主要内容,如果未能解决你的问题,请参考以下文章

mysql查询指定某个分区

如何查看MySQL的当前存储引擎?

如何查看MySQL的当前存储引擎?

如何查看与显示oracle表的分区信息

如何查看已安装的 CentOS 版本信息

如何查看kafka 各partition数据量