如果我们需要一次性往数据库表中插入多条记录 ,可以从如下四方面进行优化
一、批量插入
//批量插入
INSERT INTO book(name,price)
VALUES
('a',1),
('b',2),
('c',3);
二、手动提交事务
DML语句默认是自动提交事务的,改为手动提交可以避免多次提交,从而提升性能
start transaction;
insert into tb_test values(1,'Tom'),(2,'Cat'),(3,'Jerry');
insert into tb_test values(4,'Tom'),(5,'Cat'),(6,'Jerry');
insert into tb_test values(7,'Tom'),(8,'Cat'),(9,'Jerry');
commit;
三、顺序插入–避免页分裂
1、InnoDB引擎中,数据行是记录在逻辑结构 page 页中的,而每一个页的大小是固定的,默认16K。那也就意味着, 一个页中所存储的行也是有限的,如果插入的数据行row在该页存储不小,将会存储到下一个页中,页与页之间会通过指针连接。