插入的技巧

大批量插入数据的优化

  对于InnoDB引擎,大量插入数据时,可以采取以下几种优化措施

  1. 导入的数据按主键顺序排序保存。因为InnoDB引擎按主键顺序保存,如果能提前将插入的顺序排序能省去很多时间。
  2. 导入数据前执行 SET UNIQUE_CHECKS=0,关闭唯一性校验,在导入之后再设置为1。因为校验会耗费时间。
  3. 导入前设置 SET AUTOCOMMIT=0,关闭自动提交,导入结束后再设置为1;因为自动提交会消耗部分时间资源。

insert的优化

  1. 尽量使用多个值表的insert语句,可以缩减客户端与数据库之间的连接、关闭等消耗。 INSERT INTO tablename values(1,2),(1,3),(1,4);
  2. 如果在不同客户端插入很多行,可使用insert delayed 语句得到更高的速度,让insert语句马上执行。
  3. 将索引文件和数据文件分在不同的磁盘上存放(InnoDB是在同一个表空间)
  4. 批量插入,可以增加bluk_insert_buffer_size变量值提供速度。(只对MyISAM有用)
  5. 当从一个文本文件装载一个表时,使用LOAD DATA INFILE,通常比INSERT语句快20倍。

参考:https://mp.weixin.qq.com/s/Egh-xT_jMg2pO1gw1Td_Rw

原文地址:https://www.cnblogs.com/smallzhen/p/14063736.html