MySQL数据插入insert性能优化详解

By | 2015/06/21
1. 一条SQL语句插入多条数据。

INSERTINTO`insert_table`(`datetime`,`uid`,`content`,`type`)VALUES(‘0′,’userid_0′,’content_0’,0);
INSERTINTO`insert_table`(`datetime`,`uid`,`content`,`type`)VALUES(‘1′,’userid_1′,’content_1’,1);

修改成:

INSERTINTO`insert_table`(`datetime`,`uid`,`content`,`type`)VALUES(‘0′,’userid_0′,’content_0’,0),
(‘1′,’userid_1′,’content_1’,1);

如果要在同一个客户端在同一时间内插入很多记录,可以使用INSERT语句附带有多个values值。这种做法比使用单一值的INSERT语句快多了(在一些情况下比较快)。如果是往一个非空数据表增加记录,可以调整变量bulk_insert_buffer_size的值使其更快。

如果要从不用的客户端插入大量记录,使用INSERT DELAYED语句也可以提高速度。

对应MyISAM,可以在SELECT语句正在运行时插入记录,只要这时候没有正在删除记录。

想要将一个文本文件加载到数据表中,可以使用LOAD DATA INFILE。这通常是使用大量INSERT语句的20倍。

3 thoughts on “MySQL数据插入insert性能优化详解

Comments are closed.