2013-03-27 122 views
1

mysql數據庫。更快的「插入忽略」或「選擇並插入」

表具有字段「代碼」上的索引。 我需要插入到表中的新行。 什麼工作更快?

1)

  • 域代碼簡單的指標 - 快速選擇
  • befor插入檢查行:SELECT COUNT(*) FROM table WHERE Code = 'NewCode';
  • 簡單的插入(如果沒有找到行):Insert into table values ('NewCode')

2 )

  • 域代碼唯一索引 - 用於插入
  • Insert IGNORE into table values ('NewCode')
+0

前者並不總是奏效 諮詢http://dev.mysql.com/doc/refman/5.5/en/insert.html。提示:併發更新。 – 2013-03-27 15:10:56

+0

我一直都很喜歡MySQL的['ON DUPLICATE KEY UPDATE/IGNORE'](http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html)。至於什麼更快。循環運行,計時,然後看看。 – ficuscr 2013-03-27 15:23:25

回答

0

對我來說更安全(且可變化的備份 - 更好的方法)是第一個,但我認爲該操作是相似的。更多detali

paladinux