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 相关文章推荐
如何使用Maxwell实时同步mysql数据
Apr 08 MySQL
MySQL 数据丢失排查案例
May 08 MySQL
mysql对于模糊查询like的一些汇总
May 09 MySQL
MYSQL 无法识别中文的永久解决方法
Jun 03 MySQL
MySQL系列之十 MySQL事务隔离实现并发控制
Jul 02 MySQL
MySQL深度分页(千万级数据量如何快速分页)
Jul 25 MySQL
SQL实现LeetCode(196.删除重复邮箱)
Aug 07 MySQL
MySQL修改默认引擎和字符集详情
Sep 25 MySQL
浅谈MySQL函数
Oct 05 MySQL
MySQL中CURRENT_TIMESTAMP的使用方式
Nov 27 MySQL
MySQL运行报错:“Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggre”解决方法
Jun 14 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
提高PHP性能的编码技巧以及性能优化详细解析
2013/08/24 PHP
php中memcache 基本操作实例
2015/05/17 PHP
PHP将二维数组某一个字段相同的数组合并起来的方法
2016/02/26 PHP
php基于PDO连接MSSQL示例DEMO
2016/07/13 PHP
php中输出json对象的值(实现方法)
2018/03/07 PHP
JS的数组的扩展实例代码
2008/07/09 Javascript
Js判断CSS文件加载完毕的具体实现
2014/01/17 Javascript
js设置文本框中焦点位置在最后的示例代码(简单实用)
2014/03/04 Javascript
JQuery拖动表头边框线调整表格列宽效果代码
2014/09/10 Javascript
jQuery validate验证插件使用详解
2016/05/11 Javascript
jquery获取复选框的值的简单实例
2016/05/26 Javascript
js 输入框 正则表达式(菜鸟必看教程)
2017/02/19 Javascript
JS实现双击内容变为可编辑状态
2017/03/03 Javascript
微信小程序 自动登陆PHP源码实例(源码下载)
2017/05/08 Javascript
Vue动态组件与异步组件实例详解
2019/02/23 Javascript
微信小程序收货地址API兼容低版本解决方法
2019/05/18 Javascript
微信小程序实现传递多个参数与事件处理
2019/08/12 Javascript
[46:47]2014 DOTA2国际邀请赛中国区预选赛5.21 LGD-CDEC VS NE
2014/05/22 DOTA
[40:50]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS LGD第四场
2014/05/24 DOTA
[36:05]DOTA2亚洲邀请赛 3.31 小组赛 A组 Liquid vs Optic
2018/04/01 DOTA
[01:04:14]VP vs TNC 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
解决谷歌搜索技术文章时打不开网页问题的python脚本
2013/02/10 Python
零基础写python爬虫之使用urllib2组件抓取网页内容
2014/11/04 Python
Python中支持向量机SVM的使用方法详解
2017/12/26 Python
详解python使用递归、尾递归、循环三种方式实现斐波那契数列
2018/01/16 Python
Python实现序列化及csv文件读取
2020/01/19 Python
python opencv 实现读取、显示、写入图像的方法
2020/06/08 Python
html5清空画布方法(三种)
2017/10/16 HTML / CSS
加拿大健康、婴儿和美容产品在线购物:Well.ca
2016/11/30 全球购物
欧缇丽加拿大官方网站:Caudalie加拿大
2019/07/18 全球购物
LUISAVIAROMA德国官网:时尚奢侈品牌购物网站
2020/11/12 全球购物
高一学生评语大全
2014/04/25 职场文书
上班迟到检讨书
2014/09/15 职场文书
骨干教师事迹材料
2014/12/17 职场文书
2015年主婚人婚礼致辞
2015/07/28 职场文书
500字作文之周记
2019/12/13 职场文书