我有一個更新腳本,每晚更新我的數據庫。InnoDB小更新很慢,性能問題
這是一個小型數據庫〜10K項目。 對於每個表,更新都很快。連接表上的速度非常慢。
連接表是如下項目表與表型之間的聯繫:
Item.Code <-> JoinTable.RefCode (VARCHAR 30), JoinTable.IdType(int 11) <-> Type.id
發動機是InnoDB的。引用表上有兩個外鍵和兩個列上的唯一鍵。此外,爲了允許外鍵,每列都有索引。
我使用下面的SQL查詢來更新表:
INSERT INTO JoinTable (id, RefCode, IdType)
VALUES (NULL, "AAA", 9584)
ON DUPLICATE KEY UPDATE
id = LAST_INSERTED_ID(id),
refCode = values(refCode),
refType = values(refType)
所以,主要的問題是運行約30分鐘15K引用的ID。
當我使用MyISAM引擎時,它大約2秒。但沒有更多的外鍵。
據我所知,MyISAM刪除外鍵,速度更快,但我認爲30分鐘這麼小的數據庫遠不是正常的。
請問您能幫我增加表演嗎?
你好,謝謝你的回覆。 IGNORE並沒有改變很多,它更快,但仍然在幾分鐘內計算。我沒有設置wam mysql Innodb參數,然後我假設我應該從那裏啓動以解決問題,但仍然使用innodb緩衝區大小爲1G,但沒有任何更改。 – user3111671
如果你運行它沒有函數values()?這是怎麼回事? –