mysql插入速度大大超过阈值

时间:2011-02-10 03:36:21

标签: mysql performance

我计划在我的简单数据库表中插入大约1亿行,其中第一列是索引varchar(256)(参见下面的col1),为了使插入更快,我在插入之前发出了禁用键语句。所以我的过程是这样的:

alter table xxx disable keys;
insert ignore into xxx(col1, col2) values('a',1), values('b',1), values('c',1)...
alter table xxx enable keys;

我使用上述语句一次插入100万个(因此约有100万个值对) 前15百万的速度非常快且恒定(在百万分之30秒的合理速度范围内),然而,现在我开始了另一个将大约1密耳插入xxx的过程,它需要永远(一小时进入它和还没有完成)。
我错过了什么吗?有什么需要调整的吗?

1 个答案:

答案 0 :(得分:0)

您应该尝试使用mysql LOAD DATA INFILE命令而不是单个插入。这通常要快得多。查看文档:

http://dev.mysql.com/doc/refman/5.1/en/load-data.html

此外,如果这是一个永远不会更新或删除数据的表,您可以尝试转换表以使用归档引擎(而不是InnoDB或其他任何内容)。该引擎用于存储大量记录,并且可以非常快速地插入新记录。请查看以下内容:

http://dev.mysql.com/tech-resources/articles/storage-engine.html