使用LOAD DATA INFILE从文本下载数据这将比使用插入语句快20倍。
当使用load命令导入数据的时候,适当的设置可以提高导入的速度,对于MyISAM存储引擎的表,可以通过以下方式快速导入大量的数据
ALTER TABLE tb1_name DISABLE KEYS;
Loading the data
ALTER TABLE tb1_name ENABLE KEYS;
DISABLE KEYS和ENABLES KEYS用来打开或关闭MyISAM表非唯一索引的更新,在导入大量的数据到一个空的MyISAM表时,通过设置这两个命令,可以提高导入的效率。对于导入大量数据到一个空的MyISAM表,默认就是先导入数据然后才创建索引的,所以不用进行设置。
下面的例子中,用LOAD语句导入数据耗时115.12秒
Mysql >load data infile ‘/home/mysql/file_test.txt’ into table film_test2;
Query OK,529256 rows affected (1 min 55.12sec)
Rocords:529056 Delete:0 Skipped:0Waring :0
而用alter table tb1_name disable keys方式总耗时6.34+12.25=18.59秒,提高了6倍多。
Mysql >alter tbale film_test2 disbale keys;
Query OK,0 rows affected (0.00sec)
Mysql>load data infile ‘/home/mysql/film_test.txt’ into table film_test2;
Query OK,529056 rows affected(6.34 sec)
Records:529056 Delete :0 Skipped:0 Warings:0
Mysql>alter table film_test2 enable keys;
Query OK,0 rows affected(12.25 sec)