• mysql导入导出数据


    大家都知道myisam读数据时比innodb要快,但导入大量表是myisam的记录特别慢,下面是我总结的mysql在导入导出大数据时加快速度的方法

    一、使用into outfile导出、load data导入数据
    1.导出大数据表(into outfile导出的数据是文本) mysql> select count(*) from app_china; +----------+ | count(*) | +----------+ | 17931 | +----------+ 1 row in set (0.00 sec) mysql> select * from app_china into outfile './app.txt'; #导出数据的文件放在数据目录 Query OK, 17931 rows affected (0.02 sec)

    2.导入大数据表
    导出的是文本数据,所以需要先创建表结构
    mysql> CREATE TABLE `app_china` ( -> `id` int(4) unsigned NOT NULL AUTO_INCREMENT, -> `name` varchar(60) NOT NULL DEFAULT '', -> `level` tinyint(3) unsigned DEFAULT NULL, -> `upid` int(4) unsigned DEFAULT NULL, -> `area_id` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '大区id', -> `path` varchar(100) NOT NULL, -> `firstLetter` char(1) DEFAULT NULL, -> PRIMARY KEY (`id`) -> ) ENGINE=MyISAM AUTO_INCREMENT=45055 DEFAULT CHARSET=utf8; Query OK, 0 rows affected (0.08 sec) mysql> load data infile './app.txt' into table app_china; Query OK, 17931 rows affected (0.07 sec) #17931条数据用时0.07秒 Records: 17931 Deleted: 0 Skipped: 0 Warnings: 0
    二.使用mysqldump导出导入数据
    1.导出数据
    [root@254host ~]# time mysqldump -uroot -p 27_interna app_china > app_china.sql
    Enter password:
    
    real    0m2.307s
    user    0m0.008s
    sys    0m0.002s
    2.导入数据
    [root@254host ~]# time mysql -uroot -p 27_interna < app_china.sql
    Enter password:
    
    real    0m2.545s
    user    0m0.013s
    sys    0m0.000s
    
    3.使用source导入
    这里不演示了,此方法最慢
    三、innodb数据导入技巧
    对于类型为innodb的表,在导入较大数据时调整以下两个参数将大大提高导入速度
    1.关闭自动提交
    set autocommit=0;
    
    2.修改数据写入磁盘操作
    set global innodb_flush_log_at_trx_commit=0
    #默认都为1,导入完成后请都修改回来

    总结:

      在导入myisam大数据量时可以使用mysql直接导入或者使用into outfile导出为文本再load data导入,使用source将会耗费大量时间

  • 相关阅读:
    Python程序中的线程操作-concurrent模块
    SVN Checkout 不包括源文件夹根目录(转)
    Windows下配置Nginx使之支持PHP(转)
    htaccess 正则规则整理(转)
    用htaccess进行访问控制(转)
    改写URL的查询字符串QUERY_STRING(转)
    htaccess URL重写rewrite与重定向redirect(转)
    URL重写:RewriteCond指令与RewriteRule 指令格式(转)
    开启.htaccess重写之前先来看看mod_rewrite(转)
    php导出excel不断刷新缓冲区的思路(转)
  • 原文地址:https://www.cnblogs.com/shansongxian/p/6474966.html
Copyright © 2020-2023  润新知