程序员

MySQL如何快速插入数据

作者:admin 2021-05-15 我要评论

前言: 日常学习和工作中,经常会遇到导数据的需求。比如数据迁移、数据恢复、新建从库等,这些操作可能都会涉及大量数据的导入。有时候导入进度慢,电脑风扇狂...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

前言:

日常学习和工作中,经常会遇到导数据的需求。比如数据迁移、数据恢复、新建从库等,这些操作可能都会涉及大量数据的导入。有时候导入进度慢,电脑风扇狂转真的很让人崩溃,其实有些小技巧是可以让导入更快速的,本篇文章笔者会谈一谈如何快速的导入数据。

注:本篇文章只讨论如何快速导入由逻辑备份产生的SQL脚本,其他文件形式暂不讨论。

1.尽量减小导入文件大小

首先给个建议,导出导入数据尽量使用MySQL自带的命令行工具,不要使用Navicat、workbench等图形化工具。特别是大数据量的时候,用MySQL自带的命令行工具导出和导入比用Navicat等图形化工具要快数倍,而且用Navicat等图形化工具做大数据量的操作时很容易卡死。下面简单介绍下怎么用MySQL自带的命令行工具做导入导出。

  1. # 导出整个实例 
  2. mysqldump -uroot -pxxxxxx --all-databases > all_database.sql 
  3.  
  4. # 导出指定库 
  5. mysqldump -uroot -pxxxxxx --databases testdb > testdb.sql 
  6.  
  7. # 导出指定表 
  8. mysqldump -uroot -pxxxxxx testdb test_tb > test_tb.sql  
  9.  
  10. # 导入指定SQL文件 (指定导入testdb库中) 
  11. mysql -uroot -pxxxxxx testdb < testdb.sql 

导入的SQL脚本内容大多是先建库建表,然后插入数据,其中耗时最长的应该是insert插入数据了。为了减小文件大小,推荐使用扩展插入方法,即多行一起批量insert,类似这样:insert into table_name values (),(),(),...,(); 。使用扩展插入比一条条插入,文件大小要小很多,插入速度要快好几倍。使用mysqldump导出的文件默认是使用批量插入的方法,导出时可使用--skip-extended-insert 参数改为逐条插入。下面以一张一千万的数据表为例,测试下不同方式导出的文件插入时的速度。

MySQL如何快速插入数据

截图


本文转载自网络,原文链接:https://www.toutiao.com/a6819174579445957128/

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • MySQL如何快速插入数据

    MySQL如何快速插入数据

  • 大数据时代下的新宠:是时候熟悉NoSQL

    大数据时代下的新宠:是时候熟悉NoSQL

  • 程序员经典面试题:为什么MySQL偶尔会

    程序员经典面试题:为什么MySQL偶尔会

  • 很用心的为你写了9道MySQL面试题

    很用心的为你写了9道MySQL面试题