有时候需要在本地导入一些stage环境的数据到本地mysql,面对1000+的sql文件(包含表结构和数据,放在同一个文件夹下),使用navicat一个一个导入sql文件显然有点太慢了,于是考虑使用source命令批量来实现.网上看了很多人遇到这个高频的数据库sql导入问题,但是没有特别具体的解决方案,只有个大概的思路,我就抛砖引玉,作为一个详细的记录,渡人渡己. 先复习一下source的使用方法,首先要用命令行方式连接到MySQL数据库,然后使用下面的命令: use database_name…
这应该是我写Mysql技术的最后一章了吧,短时间内应该不会再写Mysql的文章了,当然疑难杂症除外 insert语句优化 因为之前我也遇到过这样的问题,是我在做数据库适配的时候碰见的,那是我的数据还是很多,导致我迁移挺耗时间的,今天看一下这个 提交前关闭自动提交 尽量使用批量Insert语句 可以使用MyISAM存储引擎 LOAD DATA INFLIE LOAD DATA INFLIE: 使用LOAD DATA INFLIE ,比一般的insert语句快20倍 select * into OU…
注意编码一致性,如:我的数据库是utf-8编码,csv文档的编码也是utf-8. 导入使用 LOAD DATA LOCAL INFILE 详细用法请参看文档或者书籍. mysql user表结构: +----------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +----------+-------------+------+--…
使用values 后接批量数据插入,因mysql 系统参数设置导致失败(数据量过大).可通过临时修改系统参数来解决,对系统安全性无影响: set global max_allowed_packet=1024*1024*16; show global variables like 'max_allowed_packet';…
mysql需要导入某前缀例如12345为前缀的,后缀扩展2位 即00-99. 利用存储过程插入数据. DROP PROCEDURE IF EXISTS insert_popsms_code;DELIMITER // ) ) BEGIN ; DECLARE channelId int; ); do ) then ',i); else set codeNum = CONCAT(prefix,i); end if; ' ) then ; ELSEIF(prefix ') then ; else ; e…
问题场景: 使用*.sql 脚本,批量导入数据到mysql实例中,使用DOS 界面导入的,期间,到最后一步 source D:\aaa.sql 回车后,系统提示 MySQL server has gone away错误: 问题分析 首先度娘:mysql出现ERROR : (2006, 'MySQL server has gone away') 的问题意思就是指client和MySQL server之间的链接断开了. 造成这样的原因一般是sql操作的时间过长,或者是传送的数据太大(例如使用ins…