1.一条sql插入多条数据
INSERT INTO TBL_TEST (id) VALUES(1);
INSERT INTO TBL_TEST (id) VALUES(2);
INSERT INTO TBL_TEST (id) VALUES(3);
改成
INSERT INTO TBL_TEST (id) VALUES (1), (2), (3)
优化目的:
1.日志量(MySQL的binlog和innodb的事务让日志)减少了,降低日志刷盘的数据量和频率,从而提高效率。
2.通过合并SQL语句,同时也能减少SQL语句解析的次数,减少网络传输的IO。
2. 在事务中进行插入处理
START TRANSACTION;
INSERT INTO TBL_TEST (id) VALUES(1);
INSERT INTO TBL_TEST (id) VALUES(2);
INSERT INTO TBL_TEST (id) VALUES(3);
COMMIT;
3. 数据有序插入(是指插入记录在主键上是有序排列)
例:id是主键
INSERT INTO TBL_TEST (id) VALUES(1);
INSERT INTO TBL_TEST (id) VALUES(3);
INSERT INTO TBL_TEST (id) VALUES(2);
改成
INSERT INTO TBL_TEST (id) VALUES(1);
INSERT INTO TBL_TEST (id) VALUES(2);
INSERT INTO TBL_TEST (id) VALUES(3);
优化目的:由于数据库插入时,需要维护索引数据,无序的记录会增大维护索引的成本。
4.合并使用