MySql表分区(根据时间datetime)
发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,timestamp 类型分区请移步=>MySql表分区(根据时间timestamp)环境:MySql8.0.18(5.6和5.7的未验证)分区条件的字段类型是datetime完整的sql操作表分区的语
千家信息网最后更新 2025年01月20日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安全错误
数据库的锁怎样保障安全
双鸭山去哪租服务器
服务器在哪里租
南通崇川区it软件开发培训
网信办春节网络安全检查
盘锦企业服务器在线咨询
重置dhcp服务器
数据库数据互通
sina收件服务器
云平台搭建需要什么样的服务器
做软件开发的为什么加班
中国最高的服务器
数据库建表查数据有几种方法
教育局网络安全会议
广东深圳直销软件开发
百万数据关联查询用什么数据库
数据库管理的职位
钉钉邮箱服务器证书怎么关闭
提高网络安全性的做法
外国互联网高科技
监狱监控网络技术
戴尔T410服务器初始密码
旭阳网络技术培训
数据库添加一段带换行符
电力行业软件开发用什么框架
苹果官方服务器
数据库如何建有外键的表
软件开发过程文档有哪些
张家口广电总局网络安全局
数据库账号是什么
电脑qq服务器拒绝了你发送文件