标签:# mysql

mysql 切割(以表分区)

查询建表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 常用语句

备份表 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 ~