索引减慢插入(不能使用说明插入分析)

时间:2013-12-31 01:25:54

标签: mysql mysql-workbench mysql-5.5

我有一个mysql数据库,我正在从日志中解析文件并在其中输入。到目前为止,在数据库中包含一个简单的4mb文件可能需要大约4分钟才能插入!我有大约10,000个这样的文件要处理。起初我认为这是我的剧本,但在进一步挖掘后,我了解到这可能与索引有关。我有一个包含4列,1个主键和2个外键的表,默认情况下是索引。由此可以知道索引是否影响插入性能?我似乎无法使用带有mysql的Explain Insert,所以我不知道要提供更多信息。我很困惑,如果我应该删除索引,但我不知道如何不引起灾难。

1 个答案:

答案 0 :(得分:1)

INSERT必须更新所有索引。它还必须检查所有外键约束,这需要在其他表的索引中进行查找。

外键检查可能会减慢您的速度。如果您确定要插入的所有数据都是干净的,则可以在进行大量插入时暂时禁用这些检查:

SET FOREIGN_KEY_CHECKS = 0;
INSERT ...
INSERT ...
...
SET FOREIGN_KEY_CHECKS = 1;

Documentation