查询建表sql
SHOW CREATE TABLE table_name;
其中原建表语句中的LESS THAN (738917) ,其中738917可以通过
SELECT FROM_DAYS(738917); 查询具体的时间。
添加分区
ALTER TABLE new_table PARTITION BY RANGE (TO_DAYS(date_column)) (
PARTITION p1 VALUES LESS THAN (TO_DAYS('2021-01-01')),
PARTITION p2 VALUES LESS THAN (TO_DAYS('2022-01-01'))
);
导出数据到新表
INSERT INTO new_table PARTITION (p2019)
SELECT * FROM source_table PARTITION (p2019);
统计分区数据数
SELECT COUNT(*) FROM new_table PARTITION (p2019);
SELECT COUNT(*) FROM source_table PARTITION (p2019);
对比备份前后分区数据
SELECT (SELECT COUNT(*) FROM table1 PARTITION (p2022)) AS source_table_row_count, (SELECT COUNT(*) FROM table2 PARTITION (p2022)) AS new_table_row_count;
删除源表数据
ALTER TABLE source_table DROP PARTITION p201901;
Read More ~
标签:#
mysql
mysql 常用语句
备份表
CREATE TABLE IM_TABLE_A_BAK LIKE IM_TABLE_A;
删除表
DROP TABLE IM_TABLE_A_BAK;
ALTER TABLE TABLE_NAME1 RENAME TABLE_NAME2;
新增字段
alter table IM_TABLE_A_BAK ADD COLUMN `COLUMU_NAME` varchar(255) DEFAULT NULL COMMENT '备注';
删除字段
alter table IM_TABLE_A_BAK DROP COLUMN `COLUMU_NAME`;
新增普通索引
ALTER TABLE IM_TABLE_A_BAK ADD INDEX IDX_MSG_ID (MSG_ID);
删除普通索引
ALTER TABLE IM_TABLE_A_BAK DROP INDEX IDX_MSG_ID;
Read More ~