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

2015年6月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倍。

  1. 2015年6月22日17:06

    原来SQL是提速的

  2. 2015年7月3日12:20

    内容挺好的、

  3. 2016年3月19日14:44

    好吧, 数据库性质的内容还没懂呢

本文的评论功能被关闭了.