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 07 MySQL
详解MySQL的半同步
Apr 22 MySQL
MySQL 全文索引使用指南
May 25 MySQL
mysql left join快速转inner join的过程
Jun 30 MySQL
MySQL系列之十四 MySQL的高可用实现
Jul 02 MySQL
MySQL into_Mysql中replace与replace into用法案例详解
Sep 14 MySQL
Mysql中一千万条数据怎么快速查询
Dec 06 MySQL
MySQL 开窗函数
Feb 15 MySQL
Linux系统下MySQL配置主从分离的步骤
Mar 21 MySQL
mysql的Buffer Pool存储及原理
Apr 02 MySQL
前端传参数进行Mybatis调用mysql存储过程执行返回值详解
Aug 14 MySQL
MySQL 原理与优化之原数据锁的应用
Aug 14 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
PHP数据库操作面向对象的优点
2006/10/09 PHP
php继承的一个应用
2011/09/06 PHP
php中Snoopy类用法实例
2015/06/19 PHP
PHP常用技巧汇总
2016/03/04 PHP
PHP的Yii框架中View视图的使用进阶
2016/03/29 PHP
Yii2 输出xml格式数据的方法
2016/05/03 PHP
php版微信发红包接口用法示例
2016/09/23 PHP
thinkphp整合系列之极验滑动验证码geetest功能
2019/06/18 PHP
javascript+xml技术实现分页浏览
2008/07/27 Javascript
javascript 客户端验证上传图片的大小(兼容IE和火狐)
2009/08/15 Javascript
调试JavaScript中正则表达式中遇到的问题
2015/01/27 Javascript
jQuery中slideUp 和 slideDown 的点击事件
2015/02/26 Javascript
Javascript设计模式之观察者模式的多个实现版本实例
2015/03/03 Javascript
javascript倒计时效果实现
2015/11/12 Javascript
javascript 内置对象及常见API详细介绍
2016/11/01 Javascript
探索Vue.js component内容实现
2016/11/03 Javascript
easyUI combobox实现联动效果
2017/01/17 Javascript
TypeScript入门-接口
2017/03/30 Javascript
react中fetch之cors跨域请求的实现方法
2018/03/14 Javascript
JavaScript函数apply()和call()用法与异同分析
2018/08/10 Javascript
CKEditor4配置与开发详细中文说明文档
2018/10/08 Javascript
在React项目中使用Eslint代码检查工具及常见问题
2018/10/10 Javascript
Node.js JSON模块用法实例分析
2019/01/04 Javascript
微信小程序实现搜索功能并跳转搜索结果页面
2019/05/18 Javascript
python正则实现提取电话功能
2018/02/24 Python
使用Python制作自动推送微信消息提醒的备忘录功能
2018/09/06 Python
django rest framework vue 实现用户登录详解
2019/07/29 Python
Python实现AI自动抠图实例解析
2020/03/05 Python
TensorFlow keras卷积神经网络 添加L2正则化方式
2020/05/22 Python
html5 分层屏幕适配的方法
2018/03/16 HTML / CSS
澳大利亚实惠时尚女装商店:Katies
2019/06/16 全球购物
捐资助学倡议书
2014/04/15 职场文书
英语演讲开场白
2015/05/29 职场文书
人代会简报
2015/07/21 职场文书
Lombok的详细使用及优缺点总结
2021/07/15 Java/Android
教你使用Ubuntu搭建DNS服务器
2022/09/23 Servers