亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

MySQL OR與IN性能

MySQL OR與IN性能

慕標5832272 2019-06-24 11:15:05
MySQL OR與IN性能我想知道在性能方面是否存在以下方面的差異SELECT ... FROM ... WHERE someFIELD IN(1,2,3,4)SELECT ... FROM ... WHERE someFIELD between  0 AND 5SELECT ... FROM ...  WHERE someFIELD = 1 OR someFIELD = 2 OR someFIELD = 3 ...或者MySQL會以編譯器優化代碼的方式優化SQL嗎?編輯:更改AND到OR是因為評論中所述的原因。
查看完整描述

3 回答

?
慕田峪9158850

TA貢獻1794條經驗 獲得超8個贊

返回結果的總數為10000次中的7264次。

SELECT?*?FROM?item?WHERE?id?=?1?OR?id?=?2?...?id?=?10000

這個查詢0.1239秒數

SELECT?*?FROM?item?WHERE?id?IN?(1,2,3,...10000)

這個查詢0.0433秒數

INOR


查看完整回答
反對 回復 2019-06-24
?
慕容708150

TA貢獻1831條經驗 獲得超4個贊

我認為兩者之間的距離會更快,因為它應該轉換為:

Field >= 0 AND Field <= 5

我的理解是,IN將被轉換成一組OR語句。IN的價值在于易用性。(節省了多次輸入每個列名的次數,并且使用現有邏輯更容易-您不必擔心和/或優先級,因為IN是一條語句。使用一組OR語句,您必須確保用圓括號包圍它們,以確保將它們作為一個條件進行計算。)

你的問題唯一真正的答案是分析查詢..然后你就會知道什么在你的特殊情況下最有效。


查看完整回答
反對 回復 2019-06-24
  • 3 回答
  • 0 關注
  • 1649 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號