我只是想知道哪種說法更有效率。我正在遍歷UUID列表(最多可以有40個UUID),並且每次都選擇。相反,我應該使用:多個選擇wheres與一個選擇在哪裏或
SELECT * FROM `player_table` WHERE `playeruuid`=uuid1 OR `playeruuid`=uuid2 OR `playeruuid`=uuid3;
然後遍歷結果集?
我只是想知道哪種說法更有效率。我正在遍歷UUID列表(最多可以有40個UUID),並且每次都選擇。相反,我應該使用:多個選擇wheres與一個選擇在哪裏或
SELECT * FROM `player_table` WHERE `playeruuid`=uuid1 OR `playeruuid`=uuid2 OR `playeruuid`=uuid3;
然後遍歷結果集?
使用IN()
其具有更好的性能:
SELECT * FROM `player_table` WHERE `playeruuid` IN(uuid1,uuid2,uuid3);
其他然後是,很難說有什麼是沒有測試它更加高效。
您可能想解釋原因。 –
'OR'優化成'IN'。所以(至少在最後幾個版本中)沒有性能差異。你可以通過做'FLUSH STATUS''證明'這個;選擇 ...; SHOW SESSION STATUS LIKE'Handler%';' –
哦,對,我對MySQL很新,所以我對此不太瞭解。謝謝! –
你會在這種情況下使用'IN'。 –
'uuid1','uuid2',...這些是字符串文字還是列? –
@Prdp字符串文字 –