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开启事务的方式
Jun 26 MySQL
MySQL Shell import_table数据导入的实现
Aug 07 MySQL
mysql 联合索引生效的条件及索引失效的条件
Nov 20 MySQL
MySQL中CURRENT_TIMESTAMP的使用方式
Nov 27 MySQL
一文搞清楚MySQL count(*)、count(1)、count(col)区别
Mar 03 MySQL
MySQL优化之慢日志查询
Jun 10 MySQL
MySQL主从切换的超详细步骤
Jun 28 MySQL
MySQL外键约束(Foreign Key)案例详解
Jun 28 MySQL
mysql查看表结构的三种方法总结
Jul 07 MySQL
mysql sock 文件解析及作用讲解
Jul 15 MySQL
MySQL数据库查询之多表查询总结
Aug 05 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
利用js调用后台php进行数据处理原码
2006/10/09 PHP
PHP新手用的Insert和Update语句构造类
2012/03/31 PHP
Laravel 5框架学习之向视图传送数据(进阶篇)
2015/04/08 PHP
PHP 获取ip地址代码汇总
2015/07/05 PHP
Javascript的数组与字典用法与遍历对象的属性技巧
2012/11/07 Javascript
js正文内容高亮效果的实现方法
2013/06/30 Javascript
详解JavaScript中常用的函数类型
2015/11/18 Javascript
jquery UI Datepicker时间控件的使用及问题解决
2016/04/28 Javascript
AngularJS  双向数据绑定详解简单实例
2016/10/20 Javascript
js编写三级联动简单案例
2016/12/21 Javascript
用JavaScript实现让浏览器停止载入页面的方法
2017/01/19 Javascript
基于vue2的table分页组件实现方法
2017/03/20 Javascript
Cookies 和 Session的详解及区别
2017/04/21 Javascript
jQuery中的$是什么意思及 $. 和 $().的区别
2018/04/20 jQuery
解决vue项目中type=”file“ change事件只执行一次的问题
2018/05/16 Javascript
JavaScript使用闭包模仿块级作用域操作示例
2019/01/21 Javascript
python判断一个集合是否包含了另外一个集合中所有项的方法
2015/06/30 Python
python变量不能以数字打头详解
2016/07/06 Python
Python之dict(或对象)与json之间的互相转化实例
2018/06/05 Python
Python设计模式之职责链模式原理与用法实例分析
2019/01/11 Python
python实现多层感知器
2019/01/18 Python
使用Python制作简单的小程序IP查看器功能
2019/04/16 Python
python虚拟环境完美部署教程
2019/08/06 Python
使用python的turtle绘画滑稽脸实例
2019/11/21 Python
Python Lambda函数使用总结详解
2019/12/11 Python
Python lambda表达式原理及用法解析
2020/08/18 Python
基于python实现简单网页服务器代码实例
2020/09/14 Python
成都思必达公司C#程序员招聘面试题
2013/06/26 面试题
电气自动化自荐信
2013/10/10 职场文书
管理科学大学生求职信
2013/11/13 职场文书
增员口号大全
2014/06/18 职场文书
教师群众路线学习心得体会
2014/11/04 职场文书
2015年世界无烟日演讲稿
2015/03/18 职场文书
开学典礼观后感
2015/06/15 职场文书
优秀范文:《但愿人长久》教学反思3篇
2019/10/24 职场文书
Java反应式框架Reactor中的Mono和Flux
2021/07/25 Java/Android