2015年(29)
分类: 系统运维
2015-07-22 16:26:49
当用load命令导入数据的时候,适当地设置可以提高导入的速度。
对于myisam存储引擎的表,可以通过以下方式导入大量的数据:
alter table tb_name disable keys;
load data infile '/data/film.txt' into table film_test;
alter table tb_name enable keys;
disable|enable keys 用来打开或者关闭myisam表非唯一索引的更新。当导入大量数据到一个非空的myisam表时,通过设置这两条命令可以提高导入的效率;而对于导入大量数据到一个空的myisam表时,默认就是先导入数据再建立索引的,所以不需要进行任何设置。
对于innodb存储引擎表,这种方式并不能优化导入速度。可以有以下几种方式提高导入速度:
1.因为innodb表是按主键顺序保存的,所以将要导入的数据按照主键顺序排列,可以有效地提高导入数据的效率。
2.导入数据前执行set unique_checks=0,关闭唯一性校验,再导入结束时再执行set unique_checks=1恢复唯一性校验,可以提高导入的效率。
3.如果应用采用自动提交的方式,建议在导入前执行set autocommit=0,关闭自动提交;导入结束后在执行set autocommit=1,开启自动提交。这样也可以提高导入效率。