如何往 MySQL 数据库快速新增数据

Posted by icoding168 on 2020-03-08 00:14:09

分类: MySQL  

在开发工作中,曾遇到一个导入 Excel 文件的需求。

虽然 Excel 文件里面挺多数据的,但文件大小并不大,很快就可以上传到服务器了。但是保存数据的速度就有点慢了,要等好几秒。

经过一番研究,我发现程序一行一行地执行 insert 语句的话,效率实在是太低了。因为每一次执行 sql 语句,程序都要发送请求给 MySQL 服务器,网络往返的开销和 MySQL 执行语句的开销都占用了一些时间。那么有什么办法可以提高效率呢?

一种是一次发送多条 insert 语句给 MySQL,例如:

insert into user(username,user_status)values('admin','enabled');
insert into user(username,user_status)values('test','enabled');

另一种是把数据都集成在同一条 insert 语句中,例如:

insert into user(username,user_status)values('admin','enabled'),('test','enabled'); 

还有一种是利用 MySQL 的 load data 命令,首先将 sql 语句生成到 txt 文件中,然后执行 load data 命令将数据恢复到表中,这比 JDBC 要快多了。