使用load data导入数据,如果导入的表是MyISAM的,对于空表,MySQL会把所有的非唯一索引进行一次独立的处理,而对于非空的表则会边插入边建索引。
所以对于非空的MyISAM表,需要用alter table xxx disable keys禁用索引,导入完成之后再用alter table xxx enable keys打开。
对于innodb,从测试的结果看无论表中是否已有记录,索引都是单独处理的,所以无需禁用索引。
本文探讨了使用loaddata导入数据时MyISAM与InnoDB表的索引处理方式的不同。对于MyISAM表,文章建议在导入前禁用索引并在导入后重新启用以提高效率。而InnoDB表则无需此类操作。
所以对于非空的MyISAM表,需要用alter table xxx disable keys禁用索引,导入完成之后再用alter table xxx enable keys打开。
对于innodb,从测试的结果看无论表中是否已有记录,索引都是单独处理的,所以无需禁用索引。
897

被折叠的 条评论
为什么被折叠?