0

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

4

1 回答 1

1

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

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

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

文档

于 2013-12-31T01:37:34.013 回答