mysql合并插入提升吞吐

本次实测了一下Mysql批量插入的性能优化方案,项目地址:https://github.com/owenliang/mysql-bulk-insert 。

实测情况

结论

无优化:逐条插入(或者说1个事务插入1条)

INSERT INTO user (id, name, age) VALUES (1, ‘Bob’, 20);

翻倍提升:多条事务提交

BEGIN

INSERT INTO user (id, name, age) VALUES (1, ‘Bob’, 20);
INSERT INTO user (id, name, age) VALUES (2, ‘John’, 22);
INSERT INTO user (id, name, age) VALUES (3, ‘Alice’, 24);

COMMIT

数量级提升:合并插入

INSERT INTO user (id, name age) VALUES (1, ‘Bob’, 20), (2, ‘John’, 22), (3, ‘Alice’, 24);

其他

为了避免插入时部分记录有唯一键的冲突,可以使用INSERT IGNORE INTO。

删除同样可以通过如下的方法合并,达到吞吐优化效果:

DELETE FROM user WHERE (id = 1) OR (id = 2) OR (id = 3);

发表评论

电子邮件地址不会被公开。