MySQL导入大量数据的处理方法

PHP二次开发 MySQL 149 次浏览 , 1条评论
  1. 修改my.ini文件
    编辑或添加:max_allowed_packey = 1024M
    编辑完成后,需要重新启动MySQL
  2. 关闭MySQL的自动提交(注:记得删掉字段索引,等导入成功后再建立!
    连接MySQL:mysql -uroot -proot
    执行如下语句:
    set autocommit=off;
    SET UNIQUE_CHECKS=0;
    SET FOREIGN_KEY_CHECKS=0;
  3. 使用source命令导入sql文件
    SELECT * FROM information_schema.INNODB_TRX \G;   //可以通过这条语句查看进度
  4. 等待导入完成后,需要输入:commit,手工提交导入的数据
  5. 执行如下语句:
    set autocommit=on;
    SET UNIQUE_CHECKS=1;
    SET FOREIGN_KEY_CHECKS=1;

据说使用load data速度回更快,并且数据量比较大的时候,重新建立索引还是很慢的,建议采用load data导入。

使用此方法需要修改php.ini:

secure-file-priv=”d:/”

指明备份路径或者导入文件路径。然后重启MySQL。

  1. 导出数据的方式:select * from tab into outfile ‘d:/tab.txt’;
  2. 需要创建索引的时候,在导入之前建立好索引。
  3. 导入方式:load data infile ‘d:/tab.txt’ into table tab;
    SELECT * FROM information_schema.INNODB_TRX \G;   //可以通过这条语句查看进度

一条评论

  1. 卢松松博客 2019年3月26日 下午5:11 回复

    文章写得不错 很有帮助,支持下

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Go