1、使用LOAD DATA语句要比INSERT语句的加载速度快。
2、 LOAD DATA比LOAD DATA LOCAL语句的效率高。前者可由服务器直接从本地磁盘读取加载数据,后者需由客户程序去读取文件并通过网络传送到服务器。
3、如果一定要用INSERT语句,应尽量在一条语句中插入多个数据行。
4、如果必须使用多条INSERT语句,则应尽量把它们集中在一起放到一个事务中进行处理,而不是在自动提交模式下执行它们:如:
begin;
insert into table_name values(...);
insert into table_name values(...);
...
commit;
对于不支持事务的表,应对表进行写锁定,然后在表锁定期间对表进行INSERT操作,如:
lock tables table_name write;
insert into table_name ...;
insert into table_name ...;
...
unlock tables;
5、尽量让MySQL插入默认值。不要在INSERT中写太多值,以减少网络传输量和服务器端的语法分析时间。
禁用和重新激活索引的方法:
alter table table_name disable keys;--禁用
alter table table_name enable keys;--启用