我需要一些帮助来弄清楚如何在 MySQL 数据库中对下表进行分区,以便我首先有 2 个分区,1 个活动用户(active
列 = true)和另一个非活动用户。然后我想按年对非活动用户分区进行子分区(在archive_key
以 YEAR(4) 作为数据类型的列上)。我想我知道如何做到这一点,但我不敢尝试以防我没有正确执行它。
谁能帮我实现这一目标?我目前正在使用 MySQL 5.7 和 8 版本。感谢可以提供的任何建议。
CREATE TABLE users_table (
row_id int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
first_name varchar(255) DEFAULT NULL,
last_name varchar(255) DEFAULT NULL,
...
createdby varchar(255) DEFAULT NULL,
createdat datetime DEFAULT NULL,
lastmodby varchar(255) DEFAULT NULL,
lastmodat datetime DEFAULT NULL,
active bit(1) NOT NULL DEFAULT b'0',
archive_key year(4) GENERATED ALWAYS AS (YEAR(createdat)) STORED,
PRIMARY KEY (row_id, active),
)
ENGINE = INNODB,
AUTO_INCREMENT = 84771,
AVG_ROW_LENGTH = 166,
CHARACTER SET utf8,
COLLATE utf8_unicode_ci;
顺便说一句,喜欢分区给你的灵活性!MySQL 真的很震撼!