批量向mysq插入数据
插入的两中方式
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);
2.拼接sql
INSERT INTO `insert_table` (`datetime`, `uid`, `content`, `type`)
VALUES ('0', 'userid_0', 'content_0', 0), ('1', 'userid_1', 'content_1', 1);
得到结果
得到结论,拼接sql的性能确实更好。
后面考虑多线程测试
200000条数据只需要30s就插入了,多线程可以优化插入,只要是因为一个insert语句分了很多步骤,有建立链接,解析sql,真正执行sql,断开链接等步骤,只有真正的执行的时候是加锁的,所以其他步骤是可以并行的。