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基础知识点汇总
May 26 MySQL
修改MySQL的默认密码的四种小方法
May 26 MySQL
MySQL系列之六 用户与授权
Jul 02 MySQL
MySQL系列之八 MySQL服务器变量
Jul 02 MySQL
MySQL 1130异常,无法远程登录解决方案详解
Aug 23 MySQL
MySQL空间数据存储及函数
Sep 25 MySQL
SQL注入详解及防范方法
Dec 06 MySQL
mysql性能优化以及配置连接参数设置
May 06 MySQL
MySQL选择合适的备份策略和备份工具
Jun 01 MySQL
mysql全面解析json/数组
Jul 07 MySQL
数据设计之权限的实现
Aug 05 MySQL
MySQL自定义函数及触发器
Aug 05 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+dbfile开发小型留言本
2006/10/09 PHP
删除及到期域名的查看(抢域名必备哦)
2008/05/14 PHP
php foreach正序倒序输出示例代码
2014/07/01 PHP
php使用ereg验证文件上传的方法
2014/12/16 PHP
弹出广告特效(一个IP只弹出一次)的代码
2007/07/27 Javascript
javascript中最常用的继承模式 组合继承
2010/08/12 Javascript
推荐40个简单的 jQuery 导航插件和教程(下篇)
2012/09/14 Javascript
jQuery焦点图切换特效插件封装实例
2013/08/18 Javascript
JavaScript实现邮箱地址自动匹配功能代码
2016/11/28 Javascript
浅析JavaScript中作用域和作用域链
2016/12/06 Javascript
基于Bootstrap 3 JQuery及RegExp的表单验证功能
2017/02/16 Javascript
面试常见的js算法题
2017/03/23 Javascript
详解Vue Elememt-UI构建管理后台
2018/02/27 Javascript
vue.js input框之间赋值方法
2018/08/24 Javascript
jQuery利用FormData上传文件实现批量上传
2018/12/04 jQuery
用webpack4开发小程序的实现方法
2019/06/04 Javascript
JavaScript使用canvas绘制随机验证码
2020/02/17 Javascript
解决微信授权成功后点击按返回键出现空白页和报错的问题
2020/06/08 Javascript
[16:56]教你分分钟做大人:司夜刺客
2014/10/30 DOTA
python函数返回多个值的示例方法
2013/12/04 Python
Python使用xlrd读取Excel格式文件的方法
2015/03/10 Python
Python操作Excel之xlsx文件
2017/03/24 Python
Python基于matplotlib实现绘制三维图形功能示例
2018/01/18 Python
matlab中实现矩阵删除一行或一列的方法
2018/04/04 Python
破解安装Pycharm的方法
2018/10/19 Python
python调用matlab的m自定义函数方法
2019/02/18 Python
python 将有序数组转换为二叉树的方法
2019/03/26 Python
Django自定义模板过滤器和标签的实现方法
2019/08/21 Python
如何实现一个python函数装饰器(Decorator)
2020/10/12 Python
python list的index()和find()的实现
2020/11/16 Python
CPB肌肤之钥美国官网:Clé de Peau Beauté
2017/09/05 全球购物
门前三包责任书
2014/04/15 职场文书
秋季校运会广播稿100字
2014/09/18 职场文书
2014年财务经理工作总结
2014/12/08 职场文书
2014年生产管理工作总结
2014/12/23 职场文书
Python编程根据字典列表相同键的值进行合并
2021/10/05 Python