Mysql表数据比较大情况下修改添加字段的方法实例
前言
如果一张表在后期的维护中,发现需要加字段以满足当下的需求,但是数据量很大有百万甚至千万级的数据,要如何修改表字段呢。
直接执行使用alter语句肯定是不现实的,这涉及到锁表重建表结构等操作,假设这时候还有其他线程在跑,等一天都改不过来。
这里整理一个比较简单的方法
1、对照要操作的表结构创建一张临时表
CREATE TABLE product_copy LIKE product;
2、将要修改的表结构改在临时表上面
3、导出表product数据,并导入到零时表product_copy
4、使用RENAME语句替换表名
RENAME TABLE product TO product_bak, product_copy TO product;
但是数据量太大的情况下,导出导入也需要一定的时间,而且数据容易出错,这里推荐使用datagrip的导入导出工具,或者idea的数据源插件,最好使用csv文件来导入导出。
1、在表名处右击选择导入数据
2、在导入界面能清楚的看到字段的对应关系,有问题可以直接调整,所见即所得
3、如果导出的时候道出了表头,还可以在第一行右击将此行标记为表头,更方便看到数据的对应
总结
到此这篇关于在Mysql表数据比较大情况下修改添加字段的方法的文章就介绍到这了,更多相关Mysql修改添加字段内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
相关推荐
-
MySQL常用的建表、添加字段、修改字段、添加索引SQL语句写法总结
本文实例讲述了MySQL常用的建表.添加字段.修改字段.添加索引SQL语句写法.分享给大家供大家参考,具体如下: 建表: DROP TABLE IF EXISTS bulletin; CREATE TABLE bulletin( id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, # 主键 uid INT(11) NOT NULL DEFAULT 0, # 创建者id context VARCHAR(600) NOT NULL DEFAULT '', # 公告
-
MySQL修改表一次添加多个列(字段)和索引的方法
MySQL修改表一次添加多个列(字段) ALTER TABLE table_name ADD func varchar(50), ADD gene varchar(50), ADD genedetail varchar(50); MySQL修改表一次添加多个索引 ALTER TABLE table_name ADD INDEX idx1 ( `func`), ADD INDEX idx2 ( `func`,`gene`), ADD INDEX idx3( `genedetail`); 以上这篇
-
Mysql表数据比较大情况下修改添加字段的方法实例
前言 如果一张表在后期的维护中,发现需要加字段以满足当下的需求,但是数据量很大有百万甚至千万级的数据,要如何修改表字段呢. 直接执行使用alter语句肯定是不现实的,这涉及到锁表重建表结构等操作,假设这时候还有其他线程在跑,等一天都改不过来. 这里整理一个比较简单的方法 1.对照要操作的表结构创建一张临时表 CREATE TABLE product_copy LIKE product; 2.将要修改的表结构改在临时表上面 3.导出表product数据,并导入到零时表product_copy 4.
-
MySql利用父id递归向下查询子节点的方法实例
不用写存储过程,不用建数据库函数,一段sql就可以实现 不用写存储过程,不用建数据库函数,一段sql就可以实现 不用写存储过程,不用建数据库函数,一段sql就可以实现 SELECT ID.LEVEL, DATA.* FROM ( SELECT @ids AS _ids, ( SELECT @ids := GROUP_CONCAT( region_id ) FROM region WHERE FIND_IN_SET(parent_id, @ids ) ) AS cids, @l := @l + 1
-
Oracle在表中有数据的情况下修改字段类型或长度的解决方法
Oracle 数据库如何在表中有数据的情况下,修改表字段的类型或者增加表字段的长度解决方法 我们偶尔需要在已有表,并且有数据的情况下,修改其某个字段的类型或改变他的长度,但是因为表中有数据,所以不可以直接修改,需要换个思路. -- Create table create table TABLE1 ( col1 number(9), col2 char(20) ); -- 尝试修改 -- 修改成功,因为表中无数据 ALTER TABLE TABLE1 MODIFY COL1 NUMBER(10);
-
Python增量循环删除MySQL表数据的方法
需求场景: 有一业务数据库,使用MySQL 5.5版本,每天会写入大量数据,需要不定期将多表中"指定时期前"的数据进行删除,在SQL SERVER中很容易实现,写几个WHILE循环就搞定,虽然MySQL中也存在类似功能,怎奈自己不精通,于是采用Python来实现 话不多少,上脚本: # coding: utf-8 import MySQLdb import time # delete config DELETE_DATETIME = '2016-08-31 23:59:59' DELE
-
深入学习MySQL表数据操作
目录 前言 正式上菜 插入数据 全部字段插入单条数据 指定字段插入多条数据 ON DUPLICATE KEY UPDATE 修改数据 删除数据 查询数据 简单查询 聚合函数 条件查询 等值查询 批量查询 模糊查询 非空判断 时间判断 行转列 case if() 分页排序 常规分页 分页优化 关联查询 等值查询 子查询 左关联 右关联 聚合查询 总结 前言 这一节我们基于表来做数据方面的操作,同样的,无非就是C(创建)R(读取)U(修改)D(删除)四种操作,但是在R上总能玩出多种花样 正式开始操作
-
MySQL异常恢复之无主键情况下innodb数据恢复的方法
本文讲述了MySQL异常恢复之无主键情况下innodb数据恢复的方法.分享给大家供大家参考,具体如下: 在mysql的innodb引擎的数据库异常恢复中,一般都要求有主键或者唯一index,其实这个不是必须的,当没有index信息之时,可以在整个表级别的index_id进行恢复 创建模拟表-无主键 mysql> CREATE TABLE `t1` ( -> `messageId` varchar(30) character set utf8 NOT NULL, -> `tokenId`
-
MySQL 表数据的导入导出操作示例
本文实例讲述了MySQL 表数据的导入导出操作.分享给大家供大家参考,具体如下: 数据导出 1. 使用 SELECT ...INTO OUTFILE ...命令来导出数据,具体语法如下. mysql> SELECT * FROM tablename INTO OUTFILE 'target_file' [option]; 其中 option 参数可以是以下选项: FIELDS TEMINATED BY 'string' (字符分断符) FIELDS [OPTIONALLY] ENCLOSED
-
详解mysql插入数据后返回自增ID的七种方法
引言 mysql 和 oracle 插入的时候有一个很大的区别是: oracle 支持序列做 id: mysql 本身有一个列可以做自增长字段. mysql 在插入一条数据后,如何能获得到这个自增 id 的值呢? 一:使用 last_insert_id() SELECT LAST_INSERT_ID(); 1. 每次 mysql 的 query 操作在 mysql 服务器上可以理解为一次"原子"操作, 写操作常常需要锁表, 这里的锁表是 mysql 应用服务器锁表不是我们的应用程序锁表
-
Mysql安装与配置调优及修改root密码的方法
一.安装 apt-get install mysql-server 需要设置账号密码 apt-get isntall mysql-client apt-get libmysqlclient-dev 2.sudo netstat -tap | grep mysql 查看是否安装成功 root@xyz:~# netstat -tap | grep mysql tcp6 0 0 [::]:mysql [::]:* LISTEN 7510/mysqld -->安装成功 二.设置mysql远程访问 1.
-
Centos8环境下修改ssh端口号方法
目录 前言 开始 前言 服务器一般默认的ssh端口号都为22,所以在大部分的使用者手中出于安全考虑就需要修改ssh的默认端口号,下面为为修改ssh默认端口号方法: 此实验是基于我之前将端口号改为2222了,我现在是将其改回22了,所以最后是用端口号22连接到的.不管是修改成别的还是修改回来都是相同的办法. 开始 进入编辑模式: vi etc/ssh/sshd_config 然后按 i 进入插入模式 将光标移动到#Port 20的下面 输入Port 端口号 然后Esc退出插入模式,输入:wq保存退
随机推荐
- angular实现图片懒加载实例代码
- 在Mac OS上安装Java以及配置环境变量的基本方法
- 浅谈java中为什么实体类需要实现序列化
- C#中static静态变量的用法实例
- PHP实现自动识别Restful API的返回内容类型
- 当前比较流行的两款PHP加密、解密工具Zend Guard和iconCube介绍
- Android点击EditText文本框之外任何地方隐藏键盘的解决办法
- python实现360皮肤按钮控件示例
- js使下拉列表框可编辑不止是选择
- 使用时间戳解决ie缓存的问题
- jQuery 特性操作详解及实例代码
- JQuery 技巧和窍门整理(8个)
- jquery自动填充勾选框即把勾选框打上true
- JavaScript 学习笔记(十六) js事件
- JavaScript中的console.trace()函数介绍
- Java中一维二维数组的静态和动态初始化
- PHP中register_shutdown_function函数的基础介绍与用法详解
- VS2010中lib与dll文件的生成与使用方法
- vue iView 上传组件之手动上传功能
- JS中用EL表达式获取上下文参数值的方法