文档章节

数据量千万级的表修改表结构的处理方法

h
 hubert_yu
发布于 2017/04/06 15:46
字数 359
阅读 239
收藏 0

       由于业务需求,用到了之前建表的预留字段,但是所需栏位的字段长度较长,需要修改预留字段的长度。在测试库上进行了修改测试,测试库的数量是3千万量级的,操作过程中数据库会进行批量锁死,处理时间大于两个小时(修改的字段是varchar类型,且长度从64扩展到512,耗时主要跟单条记录的数据宽度有关)。

       表的锁死是生产环境锁不能接受的,尤其是这么长的时间。于是建了一张新的表,满足扩展字段,修改字段长度的需求。然后选择在凌晨将凌晨以前的数据导入新表中,我是分成小段插入的新表,语句如下,有四万多条这样的语句,写个小demo提前生产.sql文件

INSERT INTO asset_record_copy (id, uid, uname,) SELECT id, uid, uname, FROM asset_record r WHERE AND r.time > '' LIMIT 19980000, 10000
INSERT INTO asset_record_copy (id, uid, uname,) SELECT id, uid, uname, FROM asset_record r WHERE AND r.time > '' LIMIT 19990000, 10000

     然后把之前的表名进行切换,重启新的服务就实现了改表结构的需求。在切换表名重启服务的过程中,会有两三分钟的停止对外服务。最后把拉下的不到一天的数据补上就好了。

© 著作权归作者所有

共有 人打赏支持
h
粉丝 0
博文 6
码字总数 1398
作品 0
浦东
私信 提问
请教各位,关于企业应用中大数据量事务性业务的技术方案

各位好, 遇到一个技术性问题,希望大家支支招,给些建议。 我把业务需求简化一下:A表(主表),A1表(A表的子表),B表。 数据量:A 千万级 A1 (子表A1中1万~10万条记录对应一条A记录) B表...

王树兵
2012/02/19
912
21
Python 一次性转换MySQL数据库所有表的存储引擎

废话不多说,上脚本先: #encoding=utf8import mysql.connector,re 定义一个列表,用于保存数据库内所有表的名称; tl = [] 定义链接信息 config={'host':'192.168.1.254' 'user':'账号', 'p...

水果糖
2016/01/09
193
0
【Oracle】-【索引】先查数据再建索引,还是先建索引再插数据?

问题: 1、新建一个表结构,创建索引,将百万或千万级的数据使用insert导入该表。 2、新建一个表结构,将百万或千万级的数据使用isnert导入该表,再创建索引。 这两种效率哪个高呢?或者说用...

bisal
2013/06/27
0
0
如何把结构相似(不完全相同)的表结构合并,然后部分数据迁移都另一张表中(不知道说清楚没得^o^)

某系统根据用户购买数据已经生成了同时购买同一类别下两个产品的数据,现需要使用该数据,生成同时购买同一类别下三个产品的数据,请设计并简要实现: 说明: 1、表结构如下: create table...

小B
2013/06/19
192
0
不停机不停服务,MYSQL可以这样修改亿级数据表结构

摘 要:本文阐述了MySQL DDL 的问题现状、pt-online-schema-change的工作原理,并实际利用pt-online-schema-change工具在线修改生产环境下1.6亿级数据表结构。 在一个软件生命周期中,我们都...

骑白马的菜鸟
05/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Java二分查找代码案例

public static int binarySearch(Integer[] srcArray, int des) { //定义初始最小、最大索引 int low = 0; int high = srcArray.length - 1; //确保不会出现重复查找,越界 while (low <= hi......

绝地逢生
6分钟前
0
0
在JAVA中线程到底起到什么作用!

这是javaeye上非常经典的关于线程的帖子,写的非常通俗易懂的,适合任何读计算机的同学. 线程同步 我们可以在计算机上运行各种计算机软件程序。每一个运行的程序可能包括多个独立运行的线程(...

xtof
18分钟前
0
0
纹理与表面细节添加方法---帧映射

中国龙-扬科
35分钟前
0
0
vue学习:9、模块工具包收集

vue常用包收集 npm i webpack@3.6.0 -s 样式支持包 npm i css-loader -s npm i style-loader -s 图片支持 npm i url-loader file-loader -s 利用less操作图片 npm i less -s npm i less-loa......

轻轻的往前走
36分钟前
0
0
20181115上课截图

小丑鱼00
46分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部