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 EXPLAIN输出列的详细解释
May 12 MySQL
详解MySQL的Seconds_Behind_Master
May 18 MySQL
详解MySQL数据库千万级数据查询和存储
May 18 MySQL
正确使用MySQL update语句
May 26 MySQL
MySQL深度分页(千万级数据量如何快速分页)
Jul 25 MySQL
MySQL Shell import_table数据导入的实现
Aug 07 MySQL
MySQL实例精讲单行函数以及字符数学日期流程控制
Oct 15 MySQL
MySQL利用UNION连接2个查询排序失效详解
Nov 20 MySQL
mysql的单列多值存储实例详解
Apr 05 MySQL
MySQL创建管理HASH分区
Apr 13 MySQL
MySQL中的全表扫描和索引树扫描
May 15 MySQL
MySQL transaction事务安全示例讲解
Jun 21 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
thinkphp利用模型通用数据编辑添加和删除的实例代码
2016/11/20 PHP
PHP使用递归算法无限遍历数组示例
2017/01/13 PHP
破除网页鼠标右键被禁用的绝招大全
2006/12/27 Javascript
iframe 父窗口和子窗口相互的调用方法集锦
2010/12/15 Javascript
jQuery遍历页面所有CheckBox查看是否被选中的方法
2015/04/14 Javascript
jQuery常用的一些技巧汇总
2016/03/26 Javascript
jQuery插件HighCharts绘制简单2D折线图效果示例【附demo源码】
2017/03/21 jQuery
vue初尝试--项目结构(推荐)
2018/01/30 Javascript
浅谈Node.js 沙箱环境
2018/05/15 Javascript
VUE 全局变量的几种实现方式
2018/08/22 Javascript
详解Node.js 中使用 ECDSA 签名遇到的坑
2018/11/26 Javascript
基于 jQuery 实现键盘事件监听控件
2019/04/04 jQuery
Vue项目接入Paypal实现示例详解
2020/06/04 Javascript
Vue中引入svg图标的两种方式
2021/01/14 Vue.js
Django rest framework基本介绍与代码示例
2018/01/26 Python
Python tkinter的grid布局及Text动态显示方法
2018/10/11 Python
python儿童学游戏编程知识点总结
2019/06/03 Python
python实现按行分割文件
2019/07/22 Python
Django如何简单快速实现PUT、DELETE方法
2019/07/24 Python
python中class的定义及使用教程
2019/09/18 Python
python异常处理try except过程解析
2020/02/03 Python
python开发实例之Python的Twisted框架中Deferred对象的详细用法与实例
2020/03/19 Python
如何把外网python虚拟环境迁移到内网
2020/05/18 Python
opencv-python的RGB与BGR互转方式
2020/06/02 Python
Python爬虫爬取微信朋友圈
2020/08/06 Python
PyCharm Community安装与配置的详细教程
2020/11/24 Python
机电专业毕业生求职信
2013/10/27 职场文书
文明餐桌活动方案
2014/02/11 职场文书
弘扬职业精神演讲稿
2014/03/20 职场文书
汽车广告策划方案
2014/05/31 职场文书
2014年秘书工作总结
2014/11/25 职场文书
优秀共青团员事迹材料
2014/12/25 职场文书
鸡毛信观后感
2015/06/11 职场文书
暑期社会实践新闻稿
2015/07/17 职场文书
利用Sharding-Jdbc进行分库分表的操作代码
2022/01/22 Java/Android
基于Apache Hudi在Google云构建数据湖平台的思路详解
2022/04/07 Servers