簡體   English   中英

添加輔助鍵時,MySQL innoDB表中的插入緩慢

[英]Slow insert in MySQL innoDB table when adding secondary key

我的InnoDB表有一個拋光問題,我無法弄清楚:

  • 我有一個包含5列的表,其中4列構成主鍵,另外還有3個輔助鍵。 在該表中,批量插入會花費很長時間-100,000條記錄最多需要400秒(即250條記錄/秒)
  • 如果所有二級索引都被刪除,則插入速度非常快-100,000條記錄需要20秒(5000條記錄/秒或快20倍)
  • 如果我在單個bigint用戶ID列上又添加了一個輔助鍵,該列也是主鍵的一部分(我經常需要搜索特定用戶的數據),則插入會立即變慢3-4倍。

這里發生了什么? 我懷疑答案是InnoDB存儲索引的方式,但是經過大量閱讀,我無法弄清楚。 最奇怪的是,使用MyISAM引擎的同一個表(添加了所有索引)始終以5000條記錄/秒的速度工作。

我不知道為什么 但是MySQL網站提供了一個性能調優技巧,用於使用輔助鍵將其插入InnoDB(這對我意味着這就是事實,因此您必須加以處理): “如果您對輔助鍵具有唯一約束,則可以通過在導入會話期間暫時關閉唯一性檢查來加快表導入速度。”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM