温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

MySQL/MariaDB 分区

发布时间:2020-07-18 23:54:15 来源:网络 阅读:873 作者:RQSLT 栏目:MySQL数据库
  • 查看表的创建命令

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 ***


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI