我需要在MySQL数据库(InnoDB引擎)中插入数百万行。当桌子有大尺寸的时候我有问题。几乎所有时间都花在插入查询上。也许有人知道如何优化它?
答案 0 :(得分:15)
将大量数据导入InnoDB:
在MySQL配置中设置
在交易开始后立即添加:
SET FOREIGN_KEY_CHECKS = 0;
SET UNIQUE_CHECKS = 0;
SET AUTOCOMMIT = 0;
在交易结束前设置:
SET UNIQUE_CHECKS = 1;
SET FOREIGN_KEY_CHECKS = 1;
答案 1 :(得分:0)
如果您谈论大量INSERT
语句,请查看称为事务的内容。我非常肯定大多数(如果不是全部)语言都支持SQL事务。他们将加快涉及写入数据库的任何事情。另外一个好处是,如果出现问题,您可以回滚更改。