插入数据优化的解决方案

正常的业务逻辑插入数据时候是一条一条插入。在正常情况下是不会有任何问题。但是如果实在批量导入等相关大数据量操作时候,一条条插入是会死人的。

解决办法:

1.一条sql不要只插入一条数据,

INSERT INTO `insert_table` (`datetime`, `uid`, `content`, `type`)

VALUES ('0', 'userid_0', 'content_0', 0);

INSERT INTO `insert_table` (`datetime`, `uid`, `content`, `type`)

VALUES ('1', 'userid_1', 'content_1', 1); 现在我们将它修改成:

INSERT INTO `insert_table` (`datetime`, `uid`, `content`, `type`)

VALUES ('0', 'userid_0', 'content_0', 0), ('1', 'userid_1', 'content_1', 1);

速度变快理由:我们再写入数据库时候,数据库都会有写日志的操作。例如配置数据库主从,就是利用日志原理,能让从库的数据跟随主库的改变而改变。因此写一次数据库就操作一次日志。如果单条数据插入10000次,合并成一次插入,时间就不用说了。

2.事务提交

首先事务能使用的引擎需要了解。有的mysql引擎不支持事务

在写数据时候,其实mysql就是先开启一个事务,然后写入数据。写入成功,再关闭数据,否则回滚。那么插入1万条数据就要开启事务1万次,如果再插入之前开启事务,全部的数据执行插入完成之后再关闭事务,是不是就只有开关一次事务。时间自然而然快了。

在数据导入时候,允许情况下建议使用上述两种和并使用。时间加快的不是一点点。

猜你喜欢

转载自blog.csdn.net/wohaoshuai0/article/details/82116929
今日推荐