概述
对于一些数据量较大的系统,数据库面临的问题除了查询效率低下,还有就是数据入库时间长。特别像报表系统,每天花费在数据导入上的时间可能会长达几个小时或十几个小时之久。因此,优化数据库插入性能是很有意义的。
其实最有效的办法是:合并+事务+有序数据进行INSERT操作。下面用实验来测试说明一下。
1、 一条SQL语句插入多条数据
常用的插入语句如:
INSERT INTO `t1` (`datetime`, `uid`, `content`, `type`) VALUES ('0', 'userid_0', 'content_0', 0);INSERT INTO `t1` (`datetime`, `uid`, `content`, `type`) VALUES ('1', 'userid_1', 'content_1', 1);
修改成:
INSERT INTO`t1`(`datetime`,`uid`,`content`,`type`) VALUES('0','userid_0','content_0',0),('1','userid_1','content_1',1);
修改后的插入操作能够提高程序的插入效率。这里第二种SQL执行效率高的主要原因是合并后日志量(MySQL的binlog和i