大批量插入数据
MyISAM 表
对于 MyISAM 存储引擎的表,可以通过以下方式快速地导入大量的数据:
DISABLE KEYS 和 ENABLE KEYS 用来打开或者关闭 MyISAM 表非唯一索引的更新。
在导入大量的数据到一个非空的 MyISAM 表时,通过设置这两个命令,可以提高导入的效率。
对于导入大量数据到一个空的 MyISAM 表,默认就是先导入数据然后才创建索引的,所以不用进行设置。
InnoDB 表
对于 InnoDB 类型的表,可以有以下几种方式提高 InnoDB 表的导入效率:
因为 InnoDB 类型的表是按照主键的顺序保存的,所以将导入的数据按照主键的顺序排列(文件内),可以有效地提高导入数据的效率。
在导入数据前执行 SET UNIQUE_CHECKS=0,关闭唯一性校验;在导入结束后执行 SET UNIQUE_CHECKS=1,恢复唯一性校验,可以提高导入的效率。
如果应用使用自动提交的方式,建议在导入前执行 SET AUTOCOMMIT=0,关闭自动提交;导入结束后再执行 SET AUTOCOMMIT=1,打开自动提交,也可以提高导入的效率。
最后更新于