【问题标题】:MYSQL bulk INSERT slowMYSQL批量INSERT慢
【发布时间】:2013-02-14 09:47:17
【问题描述】:

我有一个非常长的 MYSQL INSERT。 MYSQL 冻结了几分钟,解冻后没有插入任何数据。

我的 INSERT 查询有问题吗?

INSERT INTO polim_inventory_transactions 
(item, type, warehouse, quantity, date) 
VALUES
(100004, 'Inventory Tr', 'BFL', 354.0000, '2013-01-31'),
(100007, 'Purchase Rec', 'BFL', 23552.0000, '2013-01-15'),
(100206, 'Inventory Tr', 'BFL', 125.0000, '2013-01-08'),
(100206, 'Inventory Tr', 'BFL', 75.0000, '2013-01-09'),
(100206, 'Inventory Tr', 'BFL', 100.0000, '2013-01-09'), ....

【问题讨论】:

  • 你在表上添加了很多索引吗?因为过多的索引可能会减慢 INSERTUPDATEDELETE 语句。

标签: mysql performance bulkinsert


【解决方案1】:

如果这是 MyISAM 表,您可以尝试在插入之前锁定它。 此外,如果您在此表上有键,禁用它们也很有帮助:

ALTER TABLE polim_inventory_transactions DISABLE KEYS;

一般来说,您可以在此处查看更多提示:Bulk Data Loading for MyISAM Tables

【讨论】:

  • 谢谢!禁用键就可以了。现在查询在 3 秒内执行。
  • 注意:需要在INSERT完成后启用keys。如果您有很多/大键,这是需要时间的阶段。
猜你喜欢
  • 1970-01-01
  • 2013-09-22
  • 1970-01-01
  • 2012-03-11
  • 2017-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多