MySQL对数据表已有表进行分区表的实现


Posted in MySQL onNovember 01, 2021

对现有的一个表进行创建分区表,并把数据迁移到新表,可以按时间来分区,然后这表不是实时更新,每天有一次插入操作。
时间比较充裕,但是服务器上有其他应用,使用较小资源为主要方式。

操作方式

@1 可以使用ALTER TABLE来进行更改表为分区表,这个操作会创建一个分区表,然后自动进行数据copy然后删除原表,
猜测服务器资源消耗比较大。

类似操作

ALTER TABLE tbl_rtdata PARTITION BY RANGE (Month(fld_date))
(   
PARTITION p_Apr VALUES LESS THAN (TO_DAYS('2012-05-01')),
PARTITION p_May VALUES LESS THAN (TO_DAYS('2012-06-01')), 
PARTITION p_Dec VALUES LESS THAN MAXVALUE );

@2 新建一个和原来表一样的分区表,然后把数据从原表导出,接着倒入新表。
(原来的表主键只有id,而我的分区字段是 stsdate, 这里主键要修改为 id,stsdate 联合主键,分区表要求分区字段要是主键或者是主键的一部分)

操作过程

采用第二种方案。先创建分区表,然后导出原表数据,新表名称改为原表名,然后插入,最后建立普通索引。

建立分区表

CREATE TABLE `apdailysts_p` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `ap_id` INT(11) NOT NULL,
  `mac` VARCHAR(17) NOT NULL,
  `liveinfo` LONGTEXT NOT NULL,
  `livetime` INT(11) NOT NULL,
  `stsdate` DATE NOT NULL,
  `lastmodified` DATETIME NOT NULL,
   PRIMARY KEY (`id`, `stsdate`)
) 
PARTITION BY RANGE COLUMNS(stsdate) (
    PARTITION p0 VALUES LESS THAN ('2016-06-01'),
    PARTITION p1 VALUES LESS THAN ('2016-07-01'),
    PARTITION p2 VALUES LESS THAN ('2016-08-01'),
    PARTITION p3 VALUES LESS THAN ('2016-09-01'),
    PARTITION p4 VALUES LESS THAN ('2016-10-01'),
    PARTITION p5 VALUES LESS THAN ('2016-11-01'),
    PARTITION p6 VALUES LESS THAN ('2016-12-01'),
    PARTITION p7 VALUES LESS THAN ('2017-01-01'),
    PARTITION p8 VALUES LESS THAN ('2017-02-01'),
    PARTITION p9 VALUES LESS THAN ('2017-03-01'),
    PARTITION p10 VALUES LESS THAN ('2017-05-01'),
    PARTITION p11 VALUES LESS THAN ('2017-06-01'),
    PARTITION p12 VALUES LESS THAN ('2017-07-01'),
    PARTITION p13 VALUES LESS THAN ('2017-08-01'),
    PARTITION p14 VALUES LESS THAN ('2017-09-01'),
    PARTITION p15 VALUES LESS THAN MAXVALUE
);

导出数据

mysqldump -u dbname -p --no-create-info dbname apdailysts  > apdailysts.sql

修改表名,导入数据(10分钟就导入完了,200w, 8g多一点数据),测试下ok,删除原来的表。

测试可以正常使用,收工,观察2天。。

? 10.16
通过这两天的观察,页面的查询速度从打不开到基本可以秒开的速度了,这个优化是成立的。

到此这篇关于MySQL对数据表已有表进行分区表的实现的文章就介绍到这了,更多相关MySQL 已有表进行分区表内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

MySQL 相关文章推荐
Mysql 如何批量插入数据
Apr 06 MySQL
MySQL复制问题的三个参数分析
Apr 07 MySQL
详解MySQL InnoDB存储引擎的内存管理
Apr 08 MySQL
MySQL时间盲注的五种延时方法实现
May 18 MySQL
修改MySQL的数据库引擎为INNODB的方法
May 26 MySQL
MySql 缓存查询原理与缓存监控和索引监控介绍
Jul 02 MySQL
MySQL系列之三 基础篇
Jul 02 MySQL
SQL实战演练之网上商城数据库商品类别数据操作
Oct 24 MySQL
Windows 64位 安装 mysql 8.0.28 图文教程
Apr 19 MySQL
MySQL的prepare使用以及遇到的bug
May 11 MySQL
Mysql数据库group by原理详解
Jul 07 MySQL
MySQL的意向共享锁、意向排它锁和死锁
Jul 15 MySQL
mysql分表之后如何平滑上线详解
Nov 01 #MySQL
MySQL8.0升级的踩坑历险记
Nov 01 #MySQL
详细聊聊关于Mysql联合查询的那些事儿
Oct 24 #MySQL
mysql事务对效率的影响分析总结
Oct 24 #MySQL
mysql事务隔离级别详情
mysql主从复制的实现步骤
记一次Mysql不走日期字段索引的原因小结
Oct 24 #MySQL
You might like
关于crontab的使用详解
2013/06/24 PHP
9个实用的PHP代码片段分享
2015/01/22 PHP
PHP Hash算法:Times33算法代码实例
2015/05/13 PHP
Avengerls vs Newbee BO3 第三场2.18
2021/03/10 DOTA
js自带函数备忘 数组
2006/12/29 Javascript
jQuery toggle()设置CSS样式
2009/11/05 Javascript
在vs2010中调试javascript代码方法
2011/02/11 Javascript
jquery实现控制表格行高亮实例
2013/06/05 Javascript
jQuery实现页面滚动时动态加载内容的方法
2015/03/20 Javascript
jquery-tips悬浮提示插件分享
2015/07/31 Javascript
AngularJs Javascript MVC 框架
2016/06/20 Javascript
JS 滚动事件window.onscroll与position:fixed写兼容IE6的回到顶部组件
2016/10/10 Javascript
BootStrap tab选项卡使用小结
2020/08/09 Javascript
pc加载更多功能和移动端下拉刷新加载数据
2016/11/07 Javascript
详解Jquery 遍历数组之$().each方法与$.each()方法介绍
2017/01/09 Javascript
AngularJS的依赖注入实例分析(使用module和injector)
2017/01/19 Javascript
解决ajax不能访问本地文件问题(利用js跨域原理)
2017/01/24 Javascript
浅谈Node 调试工具入门教程
2018/03/20 Javascript
Nodejs中的JWT和Session的使用
2018/08/21 NodeJs
使用vue for时为什么要key【推荐】
2019/07/11 Javascript
webpack3升级到webpack4遇到问题总结
2019/09/30 Javascript
Vue extend的基本用法(实例详解)
2019/12/09 Javascript
js实现3D粒子酷炫动态旋转特效
2020/09/13 Javascript
[54:02]2018DOTA2亚洲邀请赛 4.1 小组赛 B组 IG vs VGJ.T
2018/04/03 DOTA
探究Python多进程编程下线程之间变量的共享问题
2015/05/05 Python
python中的迭代和可迭代对象代码示例
2017/12/27 Python
python中如何使用分步式进程计算详解
2019/03/22 Python
用Python中的turtle模块画图两只小羊方法
2019/04/09 Python
西铁城美国官方网站:Citizen Watch美国
2019/11/08 全球购物
法学专业个人求职信
2013/09/26 职场文书
企业文化演讲稿
2014/05/20 职场文书
班子查摆四风个人对照检查材料思想汇报
2014/10/04 职场文书
小学教师年度个人总结
2015/02/05 职场文书
幽默口才训练经典句子(48句)
2019/08/19 职场文书
基于Redis的List实现特价商品列表功能
2021/08/30 Redis
使用Spring处理x-www-form-urlencoded方式
2021/11/02 Java/Android