2016-11-23 74 views
0

我只是想知道哪種說法更有效率。我正在遍歷UUID列表(最多可以有40個UUID),並且每次都選擇。相反,我應該使用:多個選擇wheres與一個選擇在哪裏或

 SELECT * FROM `player_table` WHERE `playeruuid`=uuid1 OR `playeruuid`=uuid2 OR `playeruuid`=uuid3; 

然後遍歷結果集?

+1

你會在這種情況下使用'IN'。 –

+1

'uuid1','uuid2',...這些是字符串文字還是列? –

+0

@Prdp字符串文字 –

回答

1

使用IN()其具有更好的性能:

SELECT * FROM `player_table` WHERE `playeruuid` IN(uuid1,uuid2,uuid3); 

其他然後是,很難說有什麼是沒有測試它更加高效。

+0

您可能想解釋原因。 –

+1

'OR'優化成'IN'。所以(至少在最後幾個版本中)沒有性能差異。你可以通過做'FLUSH STATUS''證明'這個;選擇 ...; SHOW SESSION STATUS LIKE'Handler%';' –

+0

哦,對,我對MySQL很新,所以我對此不太瞭解。謝謝! –