MySql表分区(根据时间datetime)
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,timestamp 类型分区请移步=>MySql表分区(根据时间timestamp)环境:MySql8.0.18(5.6和5.7的未验证)分区条件的字段类型是datetime完整的sql操作表分区的语
千家信息网最后更新 2025年11月07日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安全错误
数据库的锁怎样保障安全
cic 服务器
闪耀暖暖怎么查看服务器
聊城软件开发师培训学校
编程软件开发就业
服务器能做主机玩游戏吗
代理服务器怎样与服务器连接
人工智能对网络安全的保护
网络安全是根本
万德数据库和终端太贵了
北京万网新兴网络技术上海分公司
神雀网络安全性
软件开发的主干和分支
微信拉票软件开发
华为2u服务器功率一般多少
华为云服务器为什么是英文的
服务器 cpu 利用率
为什么网络安全设备异常
咸阳软件开发大概费用
吉林机械软件开发维修价格
公安的数据库能不能定位
招聘信息爬虫的数据库
5g网络技术应用与发展趋势
神武 服务器多少级可以跑环
数据库管理系统是在什么基础上
东北软件开发公司
求生之路2国外服务器
网络安全交友的建议
操作系统和网络安全
投资实用网络技术有限公司
计算机网络技术认识