从Excel导数据到MySQL速度优化
运行环境: 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速度优化的更多相关文章
- Excel表格数据导入MySQL数据库
有时候项目需要将存在表格中的批量数据导入数据库,最近自己正好碰到了,总结一下: 1.将excel表格另存为.csv格式文件,excel本身的.xlsx格式导入时可能会报错,为了避免不必要的格式错误,直 ...
- JDBC批处理读取指定Excel中数据到Mysql关系型数据库
这个demo是有一个Excel中的数据,我需要读取其中的数据然后导入到关系型数据库中,但是为了向数据库中插入更多的数据,循环N次Excel中的结果. 关于JDBC的批处理还可以参考我总结的如下博文: ...
- java读取excel文件数据导入mysql数据库
这是我来公司的第二周的一个小学习任务,下面是实现过程: 1.建立maven工程(方便管理jar包) 在pom.xml导入 jxl,mysql-connector 依赖 可以在maven仓库搜索 2.建 ...
- asp.net中TreeView的大数据加载速度优化
由于数据量太大,加载树时间很长,所以进行了优化 前台 .aspx <asp:Panel ID="Panel2" runat="server" Height ...
- Mssql数据库与Excel导数据
*.xls 2003的excel有行数限制,65535行好像,所以数据库行数多的时候,选择导出为*.xlsx文件 要装一下Microsoft.ACE.OLEDB.12.0(以下简称 ACE 引擎) ...
- PHP Excel导入数据到MySQL数据库
数据导出已经有了,怎么能没有数据导入呢,同样使用TP5框架,首先需要下载phpexcel.zip,放到第三方类库目录vendor目录下,然后有一个页面可以让你选择要导入的Excel文件,然后点击导入按 ...
- 使用phpExcel批量上传excel表数据到mysql数据库中
/*批量上传数据*/ if(isset($_POST['submit']) && $_POST['submit']=='上传文件') { //导入类文件 require_once (& ...
- Excel表格数据导入Mysql数据库的方法
1.使用Navicat 连接需要导入的数据库. 2.excel 列的名字最好和数据库的名字一致,便于我们直观的查看好理解. 第一步,先创建好表,和准备好对应的excel文件.在Navicat 中选 ...
- 将 excel文件数据导入MySQL数据库中
第一步:先将Excel文件另存为文本文件(制表符分割) 第二步:将生成的txt文件另存,并修改编码格式utf8; 第三步:将文件放到指定位置,或自己想要的位置: G:\city.txt 第四步:避免创 ...
随机推荐
- HTTP深入浅出 http请求完整过程
HTTP(HyperText Transfer Protocol)是一套计算机通过网络进行通信的规则.计算机专家设计出HTTP,使HTTP客户(如Web浏览器)能够从HTTP服务器(Web服务器)请求 ...
- FCN网络
https://www.cnblogs.com/gujianhan/p/6030639.html
- node-RED
node-RED提供了一个基于浏览器的编辑器,可以轻松地使用调色板中的广泛节点将流连接在一起,这些节点可以通过单击部署到其运行时.使用Node-RED,开发人员将输入/输出和处理节点连接起来,创建流程 ...
- git出现refusing to merge unrelated histories
问题描述当本地分支与远程分支没有共同祖先时,会出现 fatal: refusing to merge unrelated histories 的问题. 解决方案可以使用 rebase 的方式来进行合并 ...
- 第31月第15天 -fembed-bitcode
1. 确保打包的时候使用的是fembed-bitcode, 而不是fembed-bitcode-maker fembed-bitcode-maker:只是简单的标记一下在archive出来的二进制中b ...
- will not be managed by Spring/ [managed: 15; max: 15]
检查事务配置 检查 mybatis 配置文件扫描路径是否正确 <!-- 自动扫描 --> <context:component-scan base-package="com ...
- Ubuntu更新Python3及pip3
https://blog.csdn.net/good_tang/article/details/85001211 根据这篇文章的作者给出的方法进行的操作,但是其中出了两个问题: 我在操作之后重开bas ...
- 让你的Spring Boot应用快速运行在Docker上面
前置条件: 1. 服务器(我这边是CentOS7)上已经安装了Docker(安装步骤很简单,可以参考我上一篇博客) 2.服务器上已经安装了Java和Maven 在满足以上条件后,我们就可以开始了: 1 ...
- symfony composer安装
参考 http://www.symfonychina.com/doc/current/setup.html 用Composer创建Symfony程序 ¶ 若你已安装过Composer,执行create ...
- 如何在html显示当前时间
下边那个是一直快速跳转的 <!doctype html> <html> <head> <meta charset="utf-8"&g ...