文档章节

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

h
 hubert_yu
发布于 2017/04/06 15:46
字数 359
阅读 174
收藏 0
点赞 0
评论 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 ⋅ 21

Python 一次性转换MySQL数据库所有表的存储引擎

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

水果糖 ⋅ 2016/01/09 ⋅ 0

【Oracle】-【索引】先查数据再建索引,还是先建索引再插数据?

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

bisal ⋅ 2013/06/27 ⋅ 0

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

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

小B ⋅ 2013/06/19 ⋅ 0

记录JAVA单线程处理千万级数据表的过程

记录JAVA单线程处理千万级数据表的过程 要求:原表有4000w+数据,需要对其中message字段进行数据处理,并将处理的结果写入result字段中 优化:分表,sql的优化 过程: 最开始是啥都不懂,打算...

qq_34594123的博客 ⋅ 2017/12/22 ⋅ 0

不停机不停服务,MYSQL可以这样修改亿级数据表结构

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

骑白马的菜鸟 ⋅ 05/28 ⋅ 0

create table as及并行相关问题

工作中设计到更新多张千万级数据量的表,需要先统计相关信息,再将信息更新到表中,更新操作需要几个小时才能执行完成。 调整思路为,先统计相关信息到中间表中C,用业务表A和C联查,用creat...

sjzmlb ⋅ 2016/03/18 ⋅ 0

千万级数据多表连接查询

某B2C电子商务网站有如下表: 发生的交易记录表(简称A), 商品表(B), 消费者用户表(C), 商家表(D) 所有的表数据量都在千万以上,尤其是表A和表B,平均每天还保持几十万的数据量增加。...

小菜的粉丝 ⋅ 2010/11/26 ⋅ 8

开放结构化数据服务--Aliyun OTS

Aliyun OTS 是基于 Node.js 的 Aliyun OTS(Open Table Service) SDK。 要求使用 协议 API。注意:如果使用 协议 API,请使用 。 开放结构化数据服务(Open Table Service,简称OTS)是一种支...

叶秀兰 ⋅ 2014/06/20 ⋅ 0

如何在不影响现行系统的情况下删除某个大表的部分数据?

这几天面试的时候面试官提了一个问题,应用场景就是假设现在有一个正运行的系统,其中有一个表A的数据量有5千万条记录,如何在不影响现行系统的情况下只保留最近的1千万条记录(如何删除其中的...

张乐1024 ⋅ 2015/10/20 ⋅ 4

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Mahout推荐算法API详解

前言 用Mahout来构建推荐系统,是一件既简单又困难的事情。简单是因为Mahout完整地封装了“协同过滤”算法,并实现了并行化,提供非常简单的API接口;困难是因为我们不了解算法细节,很难去根...

xiaomin0322 ⋅ 24分钟前 ⋅ 0

WampServer默认web服务器根目录位置

安装WampServer之后的web服务器根目录默认位置在WampServer安装目录下的www:

临江仙卜算子 ⋅ 26分钟前 ⋅ 0

Redux的一些手法记录

Redux Redux的基本概念见另一篇文。 这里记录一下Redux在项目中的实际操作的手法。 actions 首先定义action.js,actions的type,可以另起一个action-type.js文件。 action-type.js用来存...

LinearLaw ⋅ 27分钟前 ⋅ 0

android 手势检测(左右滑动、上下滑动)

GestureDetector类可以让我们快速的处理手势事件,如点击,滑动等。 使用GestureDetector分三步: 1. 定义GestureDetector类 2. 初始化手势类,同时设置手势监听 3. 将touch事件交给gesture...

王先森oO ⋅ 41分钟前 ⋅ 0

java 方法的执行时间监控 设置超时(Future 接口)

java 方法的执行时间监控 设置超时(Future 接口) import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; import java.util.concurrent.Executor......

青峰Jun19er ⋅ 46分钟前 ⋅ 0

一名开源小白的Apache成长自述

今天收到了来自Apache Vote我成为Serviceomb项目Committer的邮件,代表自己的贡献得到了充分的肯定;除了感谢团队的给力支持,我更希望将自己的成长经历——如何践行Apache Way的心得介绍给大...

微服务框架 ⋅ 48分钟前 ⋅ 0

vim介绍、颜色显示和移动光标、一般模式下复制、剪切和粘贴

1.vim 是 vi 的升级版 vim 是带有颜色显示的 mini安装的系统,一般都不带有vim [root@aminglinux-128 ~]# yum install -y vim-enhanced已加载插件:fastestmirror, langpacksLoading mir...

oschina130111 ⋅ 48分钟前 ⋅ 0

Deepin 操作系统四面楚歌

作为国内做的最好的 Linux 发行版,源自 Debian sid 的 Deepin 目前正面临重重困境,新版本不断延期,开发人员离职,bug 长期得不到修复,和 Debian/Ubuntu 的兼容性问题也面临越来越严重的挑...

六库科技 ⋅ 48分钟前 ⋅ 0

MyBatis之动态sql

我们需要知道的是,使用mybatis重点是对sql的灵活解析和处理。在原先的UserMappser.xml中,我们这样查询表中满足条件的记录 : 123 <select id="findUserList" parameterType="userQuery...

瑟青豆 ⋅ 49分钟前 ⋅ 0

这届俄罗斯世界杯的冷门那么多怎么办?

最纯粹的世界杯,最神奇的大冷门。 德国0比1被墨西哥摩擦了。 日本历史性的赢了哥伦比亚。 C罗也挑平了西班牙。 梅西被冰岛狮吼吼愣神了。 就连11次进世界杯4强的巴西也被瑞士逼平了。 天台已...

开源中国众包平台 ⋅ 49分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部