查看表的建立命令sql
SHOW CREATE TABLE my_table_name;
查看表是否分区(Create_options 字段为 partitioned 或空)ide
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 分区】spa
有主键时建立 KEY 分区,建议分区个数为质数。orm
可参考这篇文章:MySQL之KEY分区引起的血案blog
经测试,在 MySQL 5.7.2六、MariaDB 10.4.6 下,分区个数为偶数时,奇数编号分区数据条数仍然为0。ip
CREATE TABLE my_table_name ( id INT NOT NULL PRIMARY KEY, name VARCHAR(20) ) PARTITION BY KEY() PARTITIONS 11; # 11 个分区
无主键时建立 key 分区get
CREATE TABLE my_table_name ( name VARCHAR(20) ) PARTITION BY KEY(name) PARTITIONS 11; # 11 个分区
对于已有表进行分区,建议新建分区表,再导入数据;也能够用 ALTER 语句修改表:qt
ALTER TABLE my_table_name PARTITION BY KEY() PARTITIONS 11;
【相关阅读】it
*** walker ***