MySQL 新增表分区很慢,转移大表数据
问题:
MySQL (version 5.7.26) 数据库有一批表 xxx_yyy,由于评估的数据量可能比较大,因此每张表都设置了表分区,把每个月的数据保存在单独的分区里。
那么如果每年年末,没有提前创建好第二年的表分区,当第二年的数据写入时,就会出现以下报错:
ERROR 1526 (HY000): Table has no partition for value from column_list
解决:
今年的表分区忘了创建,因此需要批量对以 xxx_ 开头的表创建分区。执行开发提供的存储过程 tmp_addpart("20220101", "20201231") 将遍历指定的表,依次创建表分区。
经过观察,1G 数据的表新建一年的 12 个分区大约需要 6 分钟。观察到还有一些大表(数据亿条以上,大小超过 10G)。
耗时的原因是:如果分区字段不在主键内,需要对表进行主键重建。如果按照大表的数据量,主键重建的速度会非常非常慢。
因为这些表算是中间表,除非重新回溯计算,否则不太会用到历史数据。因此考虑将这些大表的数据进行备份(简单点,直接对表重命名,再创建一个新表)。
RENAME TABLE xxx_yyy TO old_xxx_yyy
CREATE TABLE xxx_yyy LIKE old_xxx_yyy
DESCRIBE xxx_yyy
就先这样临时解决吧~
—END—
MySQL 新增表分区很慢,转移大表数据的更多相关文章
- oracle表空间表分区详解及oracle表分区查询使用方法(转+整理)
欢迎和大家交流技术相关问题: 邮箱: jiangxinnju@163.com 博客园地址: http://www.cnblogs.com/jiangxinnju GitHub地址: https://g ...
- 20亿与20亿表关联优化方法(超级大表与超级大表join优化方法)
记得5年前遇到一个SQL.就是一个简单的两表关联.SQL跑了几乎相同一天一夜,这两个表都非常巨大.每一个表都有几十个G.数据量每一个表有20多亿,表的字段也特别多. 相信大家也知道SQL慢在哪里了,单 ...
- 8、SQL Server 表分区
什么是表分区?表分区其实就是将一个大表分成若干个小表.表分区可以从物理上将一个大表分成几个小表,但是逻辑上还是一个表.所以当执行插入.更新等操作的时候,不需要我们去判断应该插入或更新到哪个表中.只需要 ...
- Oracle 表分区(Partition)
表分区功能能够改善应用程序性能,提高数据库可管理性和可用性,是数据库管理非常关键的技术.数据库通过使用分区提高查询性能,简化日常管理维护工作. 1 分区优点 1) 减少维护工作量,独立管理每个表分区比 ...
- MySQL表分区
MySQL的表分区 一.什么是表分区通俗地讲表分区是将一大表,根据条件分割成若干个小表.mysql5.1开始支持数据表分区了.如:某用户表的记录超过了600万条,那么就可以根据入库日期将表分区,也可以 ...
- Mysql千万级大表优化
Mysql的单张表的最大数据存储量尚没有定论,一般情况下mysql单表记录超过千万以后性能会变得很差.因此,总结一些相关的Mysql千万级大表的优化策略. 1.优化sql以及索引 1.1优化sql 1 ...
- Mysql千万级大表优化策略
1.优化sql以及索引 1.1优化sql 1.有索引但未被用到的情况(不建议) (1)避免like的参数以通配符开头时 尽量避免Like的参数以通配符开头,否则数据库引擎会放弃使用索引而进行全表扫描. ...
- MySQL高级知识(十六)——小表驱动大表
前言:本来小表驱动大表的知识应该在前面就讲解的,但是由于之前并没有学习数据批量插入,因此将其放在这里.在查询的优化中永远小表驱动大表. 1.为什么要小表驱动大表呢 类似循环嵌套 for(int i=5 ...
- Mysql数据分片技术(一)——初识表分区
1. 为什么需要数据分片技术 2. 3种数据分片方式简述 3. 分片技术原理概述 4. 对单表分区的时机 1为什么需要数据分片技术 数据库产品的市场 在互联网行业内,绝大部分开发人员都会遇到数据表的性 ...
随机推荐
- Log4j 2.17.0 再曝漏洞,但不要惊慌!
最新消息!根据Log4j官网发布,2.17.0版本还存在漏洞! 上图来自Log4j2官网:https://logging.apache.org/log4j/2.x/ 漏洞编号:CVE-2021-448 ...
- 如何理解 TS 类型编程中的 extends 和 infer
extends extends 在TS类型编程中用法(T extends U),表示 T 中的某些在 U 里面,比较难描述,用法如下: T extends U ? X : Y 分为两种情况理解更直观一 ...
- 【机器学*】k*邻算法-03
心得体会: 需要思考如何将现实对象转化为特征向量,设置特征向量时记住鸭子定律1 鸭子定律1 如果走路像鸭子.说话像鸭子.长得像鸭子.啄食也像鸭子,那它肯定就是一只鸭子 事物的外在特征就是事物本质的表现 ...
- k8s-svc
1. 简介 kubernets service 是将运行一组pods上的应用程序公开为网络服务的抽象方法. 有了 kubernets service,你就无需修改应用程序即可使用服务发现机制,kube ...
- WPF 使用 Silk.NET 进行 DirectX 渲染入门
本文告诉大家如何使用 dotnet 基金会新开源的 Silk.NET 库调用 DirectX 进行渲染的方法.此库是对 DirectX 的底层基础封装,用上了 dotnet 和 C# 的各个新特性,相 ...
- sqlserver - 判断字段是否是纯数字
PATINDEX('%[^0-9|.|-|+]%',w.waterMeterNo)=0 如 SELECT w.* FROM [dbo].[waterMeterInfo] w where isnull( ...
- gitlab新增ssh
https://blog.csdn.net/u011925641/article/details/79897517
- wget 工具使用
wget http://xxxx 下载文件到当前文件夹 wget -V 显示wget的版本信息并退出 wget -v 打印详细信息 默认 wget -nv 关闭详细输出,但不进入安静模式 wget - ...
- POJCrossing River
http://poj.org/problem?id=1700贪心问题 对于一个安排,怎么样是最小的?首先关于花费,对于每次运输,以最节约的方式运输.两种情况,一种最轻的作为往返,另外 一种是每次带一个 ...
- 关于less使用初学者常犯错误
1.多层嵌套 2.定义变量复用性不高 3.方法定义多余参数.