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中InnoDB存储引擎的锁的基本使用教程
May 26 MySQL
如何自己动手写SQL执行引擎
Jun 02 MySQL
浅谈MySQL user权限表
Jun 18 MySQL
MySQL如何解决幻读问题
Aug 07 MySQL
mysql 索引合并的使用
Aug 30 MySQL
Arthas排查Kubernetes中应用频繁挂掉重启异常
Feb 28 MySQL
MySQL慢查询优化解决问题
Mar 17 MySQL
MySQL优化及索引解析
Mar 17 MySQL
一次Mysql update sql不当引起的生产故障记录
Apr 01 MySQL
MySQL中order by的执行过程
Jun 05 MySQL
MySQL数据库之存储过程 procedure
Jun 16 MySQL
MySQL数据库之内置函数和自定义函数 function
Jun 16 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浮点数知识
2015/05/13 PHP
PHP实现随机数字、字母的验证码功能
2018/08/01 PHP
HTTP头隐藏PHP版本号实现过程解析
2020/12/09 PHP
jquery图片放大镜功能的实例代码
2013/03/26 Javascript
利用javascript数组长度循环数组内所有元素
2013/12/27 Javascript
原生js实现日期联动
2015/01/12 Javascript
Backbone.js的一些使用技巧
2015/07/01 Javascript
javascript实现别踩白块儿小游戏程序
2015/11/22 Javascript
分享js粘帖屏幕截图到web页面插件screenshot-paste
2020/08/21 Javascript
JS实现颜色动态淡化效果
2017/03/06 Javascript
vue2.0全局组件之pdf详解
2017/06/26 Javascript
React组件refs的使用详解
2018/02/09 Javascript
nodejs使用async模块同步执行的方法
2019/03/02 NodeJs
javascript实现自由编辑图片代码详解
2019/06/21 Javascript
js中offset,client , scroll 三大元素知识点总结
2019/09/11 Javascript
Vue v-for循环之@click点击事件获取元素示例
2019/11/09 Javascript
vue通过过滤器实现数据格式化
2020/07/20 Javascript
Python实现计算最小编辑距离
2016/03/17 Python
Python的SQLalchemy模块连接与操作MySQL的基础示例
2016/07/11 Python
python3使用PyMysql连接mysql数据库实例
2017/02/07 Python
PyQt5每天必学之进度条效果
2018/04/19 Python
python中pip的安装与使用教程
2018/08/10 Python
python 判断三个数字中的最大值实例代码
2019/07/24 Python
Python3 chardet模块查看编码格式的例子
2019/08/14 Python
python实现二分类的卡方分箱示例
2019/11/22 Python
python 列表、字典和集合的添加和删除操作
2019/12/16 Python
HTML5之SVG 2D入门2—图形绘制(基本形状)介绍及使用
2013/01/30 HTML / CSS
size?荷兰官方网站:英国高级运动鞋精品店
2020/07/24 全球购物
JAVA和C++区别都有哪些
2015/03/30 面试题
医护人员英文求职信范文
2013/11/26 职场文书
宿舍违规用电检讨书
2014/02/16 职场文书
优秀管理者事迹材料
2014/05/22 职场文书
贪污检举信范文
2015/03/02 职场文书
证婚人婚礼致辞
2015/07/28 职场文书
MYSQL 的10大经典优化案例场景实战
2021/09/14 MySQL
Python find()、rfind()方法及作用
2022/12/24 Python