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为什么需要数据分片技术 数据库产品的市场 在互联网行业内,绝大部分开发人员都会遇到数据表的性 ...
随机推荐
- css的鼠标手势总结
css的鼠标手势 cursor:pointer; 或 cursor:hand : 手型 cursor:crosshair : 十字 cursor:text : 文本 cursor:wait : 等待 ...
- Noise
目录 motivation settings results motivation 提高网络的一个有用的技巧就是增加训练数据: 真实数据, 或者用GAN拟合的数据. 这里想要研究的是, 噪声是否能够算 ...
- 「MySql高级查询与编程」练习:企业员工管理
题目:企业员工管理 一.语言和环境 1.实现语言:SQL. 2.开发环境:MySQL,navicat for mysql. 二.题目(100分): 1.创建数据库及数据表: (1)创建数据库,名称为d ...
- MySQL高级查询与编程笔记 • 【第5章 常见数据库对象】
全部章节 >>>> 本章目录 5.1 视图 5.1.1 视图的定义 5.1.2 视图的优点 5.1.3 视图的创建和使用 5.1.4 利用视图解决数据库的复杂应用 5.1. ...
- Java程序设计基础笔记 • 【第7章 Java中的类和对象】
全部章节 >>>> 本章目录 7.1 理解类和对象 7.1.1 对象 7.1.2 抽象与类 7.1.3 类与对象的关系: 7.2 Java中的类和对象 7.2.1 类的定义 ...
- Log4j2进阶使用(Pattern Layout详细设置)
1.进阶说明 通过配置Layout打印格式化的日志, Log4j2支持很多的Layouts: CSV GELF HTML JSON Pattern Serialized Syslog XML YAML ...
- SSH公/私秘钥的生成及使用
如果使用GitHub比较多的朋友,对SSH Key肯定也不陌生,当我们SSH进行代码的pull&push时,往往需要我们配置SSH Key. 如果Linux用的多朋友,肯定对SSH Key都很 ...
- CSS基础 阴影相关属性设置
一.字体阴影属性名:text-shadow:水平偏移量 垂直偏移量 模糊度 阴影颜色: html代码: <div>农夫山泉有点甜</div>css代码: div{ font-s ...
- 初识python 之 爬虫:正则表达式
python中正则表达式功能由 re 模块提供: import re 两个主要函数: match 匹配第一个字符(从第一个字符开始匹配) search 匹配整个字符串 一.匹配单个字符 1.匹配某个 ...
- 基于appnium+python+夜神模拟器的自动化
首先搭好appnium环境!参考https://www.cnblogs.com/testlearn/p/11419797.html 1.安装夜神模拟器 下载安装夜神模拟器后,在cmd命令输入adb c ...