MySql表分区(根据时间datetime)
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,timestamp 类型分区请移步=>MySql表分区(根据时间timestamp)环境:MySql8.0.18(5.6和5.7的未验证)分区条件的字段类型是datetime完整的sql操作表分区的语
千家信息网最后更新 2026年11月01日MySql表分区(根据时间datetime)
timestamp 类型分区请移步=>MySql表分区(根据时间timestamp)
环境:
MySql8.0.18(5.6和5.7的未验证)
分区条件的字段类型是datetime
完整的sql操作表分区的语句如下:
-- 1.删除表drop table t_test;-- ===================================================================================-- 2.创建一个表并对其分区,被创建分区的字段必须为主键,或者创建分区时表中没有主键-- 2.1 方式一:表和分区一起创建create table t_test ( id int, dates timestamp)partition by range (unix_timestamp(dates)) ( -- 小于2018-01-01的 partition p1 values less than (unix_timestamp('2018-01-01')), partition p2 values less than (unix_timestamp('2018-02-01')), partition p3 values less than (unix_timestamp('2018-03-01')), -- 大于2018-03-01的 partition p4 values less than maxvalue);-- ===================================================================================-- 2.2 方式二:表和分区分开创建-- 2.2.1 建表create table `t_test` ( `id` int(11) not null, `dates` datetime(0) not null on update current_timestamp(0), primary key (`id`, `dates`));-- 3. 修改分区信息alter table t_test partition by range (to_days(dates)) ( -- 小于2020-01-01的 partition p1 values less than (to_days('2020-01-01')), partition p2 values less than (to_days('2020-02-01')), partition p3 values less than (to_days('2020-03-01')), partition p4 values less than (to_days('2020-04-01')), -- 大于2020-04-01的 partition p5 values less than maxvalue);-- ===================================================================================-- 4. 删除并添加新的分区(注意:如果原先最后一个分区是partition pnow values less than maxvalue; 那么应该先删除该分区,然后在执行新增分区语句,然后再新增回该分区)-- 4.1 删除一个分区(注意:删除一个分区时,该分区内的所有数据也都会被删除;)alter table t_test drop partition p5;-- 4.2 新增一个分区alter table t_test add partition (partition p6 values less than (to_days('2020-05-01')));-- 4.3 新增一个分区(不满足其余分区条件的都存放在这个分区)alter table t_test add partition (partition p7 values less than maxvalue);-- ===================================================================================-- 5.查询这个表有多少分区-- 5.1查询每一个分区对应的数量select partition_name part, partition_expression expr, partition_description descr, from_days(partition_description) expirydate, table_rows from information_schema.`partitions`where table_name='t_test'; -- 6.创建测试数据-- 小于2020-01-01 2条insert into `t_test` values ('1', '2018-01-02 15:00:00');insert into `t_test` values ('2', '2019-12-02 15:00:00');-- 2020-01-01至2020-02-01 1条insert into `t_test` values ('3', '2020-01-02 16:00:00');-- 2020-02-01至2020-03-01 2条insert into `t_test` values ('4', '2020-02-03 15:00:00');insert into `t_test` values ('5', '2020-02-03 15:00:00');-- 2020-03-01至2020-04-01 1条insert into `t_test` values ('6', '2020-03-03 15:00:00');-- 2020-04-01至2020-05-01 1条insert into `t_test` values ('7', '2020-04-03 15:00:00');-- 大于2020-05-01 4条insert into `t_test` values ('8', '2020-05-03 15:00:00');insert into `t_test` values ('8', '2020-06-03 15:00:00');insert into `t_test` values ('8', '2020-06-06 15:00:00');insert into `t_test` values ('8', '2021-01-01 15:00:00');-- 6.查询数据select * from t_test;我们使用第5步的sql可以查看分区信息
可以看到2020-01-01之前的有2条信息,2020-01-01至2020-02-01之前的有1条信息,以此类推,最后2020-05-01之后的一共有4条信息
也可使用Navicat for MySQL工具操作分区:Navicat for MySQL进行表分区操作(图解)
timestamp 类型分区请移步=>MySql表分区(根据时间timestamp)
信息
数据
类型
查询
时间
字段
方式
条件
语句
以此类推
工具
数量
环境
测试
类推
验证
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技财经
金融科技还是互联网
互联网科技的发展
紫鲸互联网科技
唐信互联网科技
凡科互联网科技
朗涯互联网科技
科技互联网的估值
宁波青枫互联网科技有限公司
顶级互联网科技成果有哪些
互联网经济与金融科技
浙江互联网科技研学营
晓花互联网科技有限公司网址
民营互联网公司国防科技
深圳市罗太互联网科技有限公司
浙南科技城互联网大厦招聘
昆明中奇联合互联网科技
绵阳真晨互联网科技有限公司
互联网的科技体现在哪里
广东猫王互联网科技有限公司电话
中关村互联网科技集团
奇酷互联网科技
狮子座互联网科技有限公司
壹账通互联网科技
科技互联网创业计划书
佰商互联网科技有限公司
顺网科技2021年互联网排名
千方科技属于互联网企业吗
佛山市拉法互联网科技有限公司
世界互联网领先科技成果获奖