当前位置:网站首页>MySQL对数据表已有表进行分区表的实现
MySQL对数据表已有表进行分区表的实现
2022-04-23 11:02:00 【liming89】
文章来源: 学习通http://www.bdgxy.com/
对现有的一个表进行创建分区表,并把数据迁移到新表,可以按时间来分区,然后这表不是实时更新,每天有一次插入操作。
时间比较充裕,但是服务器上有其他应用,使用较小资源为主要方式。
操作方式
@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 已有表进行分区表内容请搜索菜鸟教程www.piaodoo.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持菜鸟教程www.piaodoo.com!
版权声明
本文为[liming89]所创,转载请带上原文链接,感谢
https://blog.csdn.net/liming89/article/details/124343202
边栏推荐
- 【leetcode】102.二叉树的层序遍历
- Idea - indexing or scanning files to index every time you start
- GO接口使用
- Data analysis learning (I) data analysis and numpy Foundation
- Which company is good for opening futures accounts? Who can recommend several safe and reliable futures companies?
- 使用zerotier让异地设备组局域网
- Visual common drawing (V) scatter diagram
- An interesting interview question
- 第六站神京门户-------手机号码的转换
- How to bind a process to a specified CPU
猜你喜欢

【leetcode】199. Right view of binary tree

Visual common drawing (IV) histogram

GO接口使用

Cumcm 2021 - B: préparation d'oléfines C4 par couplage éthanol (2)

Let the LAN group use the remote device

精彩回顾|「源」来如此 第六期 - 开源经济与产业投资

Detailed explanation of typora Grammar (I)

ID number verification system based on visual structure - Raspberry implementation

Introduction to neo4j authoritative guide, recommended by Qiu Bojun, Zhou Hongxiang, Hu Xiaofeng, Zhou Tao and other celebrities

26. 删除有序数组中的重复项
随机推荐
Charles function introduction and use tutorial
学习网站资料
Analysis on the characteristics of the official game economic model launched by platoffarm
Restful、SOAP、RPC、SOA、微服务之间的区别
CUMCM 2021-B:乙醇偶合制備C4烯烴(2)
Pycharm
Problems of class in C # and database connection
Pytorch implementation of transformer
Cumcm 2021 - B: préparation d'oléfines C4 par couplage éthanol (2)
全栈交叉编译X86完成过程经验分享
Code implementation of general bubbling, selection, insertion, hill and quick sorting
Hikvision face to face summary
Learning notes 7-depth neural network optimization
SQL server query database deadlock
如何使用JDBC CallableStatement.wasNull()方法调用来查看最后一个OUT参数的值是否为 SQL NULL
Jupyter Lab 十大高生产力插件
Mba-day5 Mathematics - application problems - engineering problems
Data analysis learning (I) data analysis and numpy Foundation
RESTful和SOAP的区别
How can swagger2 custom parameter annotations not be displayed