MySQL/MariaDB 分区
短信预约 -IT技能 免费直播动态提醒
查看表的创建命令
SHOW CREATE TABLE my_table_name;
查看表是否分区(Create_options 字段为 partitioned 或空)
SHOW TABLE STATUS LIKE '%my_table_name%';
查看分区信息
# 所有信息
SELECT
*
FROM
INFORMATION_SCHEMA.PARTITIONS
WHERE
TABLE_SCHEMA = 'my_db_name' # 库名
AND TABLE_NAME = 'my_table_name'; # 表名
# 常用信息
SELECT
PARTITION_METHOD,
PARTITION_NAME,
PARTITION_EXPRESSION,
PARTITION_DESCRIPTION,
TABLE_ROWS
FROM
INFORMATION_SCHEMA.PARTITIONS
WHERE
TABLE_SCHEMA = SCHEMA() # 库名
AND TABLE_NAME = 'my_table_name'; # 表名
【KEY 分区】
有主键时创建 KEY 分区,建议分区个数为质数。
可参考这篇文章:MySQL之KEY分区引发的血案
经测试,在 MySQL 5.7.26、MariaDB 10.4.6 下,分区个数为偶数时,奇数编号分区数据条数仍然为0。
CREATE TABLE my_table_name (
id INT NOT NULL PRIMARY KEY,
name VARCHAR(20)
)
PARTITION BY KEY()
PARTITIONS 11; # 11 个分区
无主键时创建 key 分区
CREATE TABLE my_table_name (
name VARCHAR(20)
)
PARTITION BY KEY(name)
PARTITIONS 11; # 11 个分区
对于已有表进行分区,建议新建分区表,再导入数据;也可以用 ALTER 语句修改表:
ALTER TABLE my_table_name
PARTITION BY KEY()
PARTITIONS 11;
【相关阅读】
MySQL/MariaDB Tips
*** walker ***
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341