MySQL分区表实现按月份归类
目录
- 建表
- 查看数据库文件:
- 插入
- 查询
- 删除
- 补充:Mysql自动按月表分区
MySQL单表数据量,建议不要超过2000W行,否则会对性能有较大影响。最近接手了一个项目,单表数据超7000W行,一条简单的查询语句等了50多分钟都没出结果,实在是难受,最终,我们决定用分区表。
建表
一般的表(innodb)创建后只有一个 idb 文件:
create table normal_table(id int primary key, no int)
查看数据库文件:
normal_table.ibd
创建按月份分区的分区表,注意!除了常规主键外,月份字段(用来分区的字段)也必须是主键:
create table partition_table(id int AUTO_INCREMENT, create_date date, name varchar(10), primary key(id, create_date)) ENGINE=INNODB DEFAULT CHARSET=utf8 partition by range(month(create_date))( partition quarter1 values less than(4), partition quarter2 values less than(7), partition quarter3 values less than(10), partition quarter4 values less than(13) );
查看数据库文件:
partition_table