MySQL导入数据非常慢的解决办法
MySQL导出的SQL语句在导入时有可能会非常非常慢,经历过导入仅45万条记录,竟用了近3个小时。在导出时合理使用几个参数,可以大大加快导入的速度。
-e 使用包括几个VALUES列表的多行INSERT语法;
--max_allowed_packet=XXX 客户端/服务器之间通信的缓存区的最大大小;
--net_buffer_length=XXX TCP/IP和套接字通信缓冲区大小,创建长度达net_buffer_length的行
注意:max_allowed_packet和net_buffer_length不能比目标数据库的配置数值大,否则可能出错。
首先确定目标库的参数值
mysql>show variables like 'max_allowed_packet';
mysql>show variables like 'net_buffer_length';
根据参数值书写mysqldump命令,如:
mysql>mysqldump -uroot -p 数据库名 -e --max_allowed_packet=1048576 --net_buffer_length=16384 > SQL文件
如:
mysql>mysqldump -uroot -p discuz -e --max_allowed_packet=1048576 --net_buffer_length=16384 > discuz.sql
之前2小时才能导入的sql现在几十秒就可以完成了。
估计会有很多表在mysqldump的时候 长时间处于opening table 状态,你可以show processlist;观察下
mysqldump 会锁表。 另外你如果有 5万个表,速度也不会太快。
mysqldump -uroot -h127.0.0.1 -p --all-databases --single-transaction --add-drop-database --add-drop-table --comments --complete-insert --default-character-set=utf8 --result-file=path/file.sql
--single-transaction 试一试这个参数
--max_allowed_packet 这个参数可以设置大一些
INNOSB无法直接COPY,用MYSQLDUMP导出,在导出时最好没有用户使用,你的表多,速度不会快。
在保持两机器环境变量,安装目录等细节完全一样的情况下,你可以直接拷数据文件到另一台机器。这样做风险比较大就是了。。。。。linux的一般在/var/lib/mysql目录下,这个目录里以你的数据库名字命名的目录,里面就是数据文件。
在mysqldump 加个参数 --quick 试下看看
使用mysqldump和mysqlimport来转移数据库。对于大的表,比只是使用mysqldump要快得多。在下面的命令中,DUMPDIR代表用来保存mysqldump输出的目录全路径名。
首先,创建保存输出文件的目录并备份数据库:
shell> mkdir DUMPDIRshell>mysqldump --tab=DUMPDIR db_name然后将DUMPDIR目录中的文件转移到目标机上相应的目录中并将文件装载到MySQL:
shell> mysqladmin create db_name # create databaseshell> cat DUMPDIR/*.sql | mysql db_name # create tables in databaseshell> mysqlimport db_name DUMPDIR/*.txt # load data into tables不要忘记复制MySQL数据库,因为授权表保存在该数据库中。你可能需要在新机器上用MySQL root用户运行命令,直到产生MySQL数据库。
将mysql数据库导入目标机器后,执行mysqladmin flush-privileges,以便服务器重载授权表信息。
MySQL导入数据非常慢的解决办法的更多相关文章
- Django——models中导入数据重复的解决办法
如果你导入数据过多,导入时出错了,或者你手动停止了,导入了一部分,还有一部分没有导入.或者你再次运行上面的命令,你会发现数据重复了,怎么办呢? django.db.models 中还有一个函数叫 ge ...
- mysql导入数据中文乱码解决方法
常见的MySQL导入方法有两种 第一种方法,使用MySQL命令导入 mysql -uroot -p123456 --default-character-set=utf8 [db_name] < ...
- Android Studio导入项目非常慢的解决办法
问题 Android Studio目前已经更新到2.0 Preview 6了,作为Google大力推崇的开发工具,相对于Eclipse ADT有着不可比拟的优势.然而在实际使用时,依然有不少不爽的地方 ...
- mysql导入数据乱码的解决
#mysql -uroot -p -hlocalhost --default-character-set=utf8; mysql>use db_name; mysql>source /ho ...
- mysql导入导出sql文件,source导入速度慢的解决办法
1.导出整个数据库mysqldump -u 用户名 -p 数据库名 > 导出的文件名mysqldump -u dbuser -p dbname > dbname.sql2.导出一个表mys ...
- mysql 数据库导入数据报错MySQL server has gone away解决办法
mysql 数据库导入数据报错MySQL server has gone away解决办法: 进入数据库执行以下命令即可: set global wait_timeout = 2880000; set ...
- pymysql:Mysql拒绝从远程访问的解决办法
pymysql:Mysql拒绝从远程访问的解决办法 pymysql连接数据库 # 导入pymysql模块 import pymysql # 连接database conn = pymysql.conn ...
- Loadrunner参数化连接oracle、mysql数据源报错及解决办法
Loadrunner参数化连接oracle.mysql数据源报错及解决办法 (本人系统是Win7 64, 两位小伙伴因为是默认安装lr,安装在 最终参数化的时候,出现连接字符串无法自动加载出来: 最 ...
- 使用sqoop从mysql导入数据到hive
目录 前言 一.使用的导入命令 二.遇到的问题及解决 1. 用文本字段进行分区的问题 2. Hadoop历史服务器Hadoop JobHistory没开启的问题 3. 连接元数据存储数据库报错 4 ...
随机推荐
- Google 常用镜像收集
1`下面列出几个目前常用的 公共DNS 服务器地址: 名称 DNS 服务器 IP 地址 OpenerDNS 42.120.21.30 百度 DuDNS 180.76.76.76 阿里 AliD ...
- iOS开发——推送证书
(最近准备考试……空闲截图整理成博客)
- IO流07_输入输出流总体系
[javaIO体系中常用的流] [关于字符流和字节流的注意点] 通常,字节流比字符流功能更加强大,因为字节流可以处理所有的二进制文件. 但是字节流来处理字符,又需要将字节转换成字符,增加了编程复杂度. ...
- CICS定时
F+14个0-----给CICS传参数FM CICSServer svr; svr.GetRetCommData(&pMsgStr, &chMsgType); CICSS ...
- javascript基础DOM操作
DOM 中的三个字母,D(文档)可以理解为整个 Web 加载的网页文档:O(对象)可以理解为类似 window 对象之类的东西,可以调用属性和方法,这里我们说的是 document对象:M(模型)可以 ...
- laravel的多态关联--morphTo和morphMany
首先,文档里面讲述的不是特别详细,详细寻找查询流程没有过多介绍,只是介绍如何去定义,直接使用,导致很多该明白的东西,没有说明,下面详细看看这个多态关联 是怎么定义,使用,详细查询的. 先看文档介绍 多 ...
- Sublime Text 3 配置浏览器预览路径 localhost
原文链接:http://jingyan.baidu.com/article/15622f2419ce79fdfcbea5ea.html 按步骤设置成功!感谢大侠! 以下是原文: Sublime Tex ...
- VC++2010添加菜单
1 资源视图下面右键添加资源 选择menu 2 创建你想要的menu 3 找到CDialog::OnInitDialog();在后面添加代码. CMenu menu; menu.LoadMenu ...
- VB6-图像分割利器 Microsoft Picture Clip控件
在医院做图像处理时碰到双面扫描仪,需要将扫描到的2张图像分割为一张并打印.在分割图像的过程中总是不得法,后来虽然有CBM666的指导,但给的方法也还是不太方便.无意中在翻一本vb书的时候看到了一个使用 ...
- SQL注入原理一
SQL注入的成因 所谓SQL注入,就是通过把SQL命令插入到Web表单提交.页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令.根据所注入对象的类型不同,SQL注入分为三类: (1) 变量是 ...