运行环境: Windows10 和 Deepin15.7, MySQL14.4, Java1.8.0_181
使用工具: poi,JDBC
数据规模: 35万条,5个文件夹,146个Excel文件(.xls,.xlsx)

一开始在win10里运行,需要3个小时,把我吓到了,当时也没多想,导完数据就做处理去了。
后来到deepin里导(电脑装的双系统),同样的数据,同样的代码,只需要100秒左右,又把我吓到了,这差距咋这么大呢。虽然deepin装在固态里,但也不至于直接差了整整一百倍吧。

然后我就又回到win10,想着做一下优化,看能不能快点,因为在网上看到有说把日志关了会快一些。我试了下,时间一下子提高到160多秒!好吧,原来就是日志的问题。

然后我又把deepin里MySQL的日志开启,测试了一下,974454ms,约16分钟,还是比win10快不少的。

MySQL在win10里默认日志开启,而deepin里默认日志关闭。

win10的MySQL日志关闭方法:
* 找到my.ini文件,在里面加入一行:skip-log-bin,保存关闭,重启MySQL服务。

deepin的MySQL日志开启方法:
* `sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
* ` 找到里面的`server-id`和`log_bin`这两行,把前面的#删掉
* 回到上一层路径,执行`./debian-start`(这一步是必须的,一开始我没执行,仅修改上面的两行后,mysql服务开启不了)

* `sevice mysql restart` 重启MySQL服务

当然,除了关闭日志,我还做了其他的优化,比如String改为StringBuffer,Statement改为PreparedStatement等,不过这些都提高不明显。

https://wmjtxt.github.io/2018-10-17-importDatatoMySQL/

从Excel导数据到MySQL速度优化的更多相关文章

  1. Excel表格数据导入MySQL数据库

    有时候项目需要将存在表格中的批量数据导入数据库,最近自己正好碰到了,总结一下: 1.将excel表格另存为.csv格式文件,excel本身的.xlsx格式导入时可能会报错,为了避免不必要的格式错误,直 ...

  2. JDBC批处理读取指定Excel中数据到Mysql关系型数据库

    这个demo是有一个Excel中的数据,我需要读取其中的数据然后导入到关系型数据库中,但是为了向数据库中插入更多的数据,循环N次Excel中的结果. 关于JDBC的批处理还可以参考我总结的如下博文: ...

  3. java读取excel文件数据导入mysql数据库

    这是我来公司的第二周的一个小学习任务,下面是实现过程: 1.建立maven工程(方便管理jar包) 在pom.xml导入 jxl,mysql-connector 依赖 可以在maven仓库搜索 2.建 ...

  4. asp.net中TreeView的大数据加载速度优化

    由于数据量太大,加载树时间很长,所以进行了优化 前台 .aspx <asp:Panel ID="Panel2" runat="server" Height ...

  5. Mssql数据库与Excel导数据

    *.xls   2003的excel有行数限制,65535行好像,所以数据库行数多的时候,选择导出为*.xlsx文件 要装一下Microsoft.ACE.OLEDB.12.0(以下简称 ACE 引擎) ...

  6. PHP Excel导入数据到MySQL数据库

    数据导出已经有了,怎么能没有数据导入呢,同样使用TP5框架,首先需要下载phpexcel.zip,放到第三方类库目录vendor目录下,然后有一个页面可以让你选择要导入的Excel文件,然后点击导入按 ...

  7. 使用phpExcel批量上传excel表数据到mysql数据库中

    /*批量上传数据*/ if(isset($_POST['submit']) && $_POST['submit']=='上传文件') { //导入类文件 require_once (& ...

  8. Excel表格数据导入Mysql数据库的方法

    1.使用Navicat 连接需要导入的数据库. 2.excel 列的名字最好和数据库的名字一致,便于我们直观的查看好理解.   第一步,先创建好表,和准备好对应的excel文件.在Navicat 中选 ...

  9. 将 excel文件数据导入MySQL数据库中

    第一步:先将Excel文件另存为文本文件(制表符分割) 第二步:将生成的txt文件另存,并修改编码格式utf8; 第三步:将文件放到指定位置,或自己想要的位置: G:\city.txt 第四步:避免创 ...

随机推荐

  1. 蓝桥杯入门训练-Fibonacci数列

    刚刚开始刷题的时候就栽了个大跟头,稍微记一下...... 一开始不是很理解:“我们只要能算出这个余数即可,而不需要先计算出Fn的准确值,再将计算的结果除以10007取余数,直接计算余数往往比先算出原数 ...

  2. vuex概念详解

    阅读vuex官网以后用自己的话概括起来就是:vuex是vue配套的公共数据管理工具,它可以把一些共享的数据,保存到vuex中,方便整个程序中的任何组件直接获取或修改我们的公共数据. vuex是为了保存 ...

  3. python复习2

    在操作字符串时,我们经常遇到str和bytes的互相转换.为了避免乱码问题,应当始终坚持使用UTF-8编码对str和bytes进行转换.

  4. docker安装redis

    查询镜像 docker search redis 拉取镜像 docker pull redis 启动容器 docker run --name redis -p 6379:6379 -d --resta ...

  5. sql的四种匹配模式

    1. % 表示任意0个或多个字符.如下语句:Select * FROM user Where name LIKE '%三%'; 将会把name为“张三”,“三脚猫”,“唐三藏”等等有“三”的全找出来. ...

  6. spring boot启动项的问题

    <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot ...

  7. iframe父页面和子页面调用

    我在页面中使用iframe标签,有的时候就需要两个页面交互 <iframe id="Iframe"  src="{{url('field/user')}}" ...

  8. 添加一个非模态对话框在revit中

    RequestHandler handler = new RequestHandler(); ExternalEvent exEvent = ExternalEvent.Create(handler) ...

  9. ubuntu server 16.04 安装过程中提示无法安装busybox-initramfs

    这个问题在安装desktop版本时是不会出现的,只有server才有这个问题. 出现这个问题与硬件平台无关,不管是虚拟机还是物理机都会出现,解决的办法是在安装开始界面选择English,后面Langu ...

  10. MySQL数据优化

    很多企业,可能每天应对的数据量达百万,千万,甚至上亿的访问量,这样的量已经超过普通配置的mysql所承受的量,所以为了应对日益增长的访问量,我们需要对mysql做出相应的对策,进一步优化mysql以达 ...