首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >改进批量插入

问改进批量插入
EN

Stack Overflow用户
提问于 2011-11-15 01:35:49
回答 1查看 297关注 0票数 0

我有一个流程,除了其他事情外,还需要对它所做的事情进行审计。此审计是对审核表的插入操作。我对它进行了基准测试,看起来这个审计让这个过程变慢了(两个数量级)。

audit表上有一些索引,删除所有索引并在过程结束后重新构建它们是不是一个好主意?

表结构为id(fk) | text | id (索引)|id(索引)|大约10个以上的文本字段

我有一个50的缓冲区,当它填满时,我将其全部作为批量插入进行插入。总的来说,我插入了大约300K条记录。

EN

回答 1

Stack Overflow用户

发布于 2011-11-15 02:48:45

如果您正在使用MyISAM,则可以使用ALTER TABLE auditTable DISABLE KEYS,然后在完成插入后重新启用您的键(ALTER TABLE auditTable ENABLE KEYS)。但是,这只会禁用非唯一键。

http://dev.mysql.com/doc/refman/5.1/en/alter-table.html

可以为MyISAM表显式激活此功能。更改表...DISABLE KEYS通知MySQL停止更新非唯一索引

如果您有较大的PK/唯一密钥,删除这些密钥,然后在导入后重新添加它们可能会快得多。

您还可以尝试将审计记录写入平面文件,然后使用LOAD DATA INFILE一次性导入它们。同样,在加载数据之前禁用或丢弃密钥将大大提高速度。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8125646

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档