2016-11-23 2 views
0

どのステートメントがより効率的であるか不思議でした。私はUUIDのリストをループしています(最大40 UUIDになる可能性があります)、毎回SELECTをしています。代わりに、私は使用する必要があります:複数選択wheres対one select OR

結果セットをループしますか?より優れた性能を有する

+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;を実行することでこれを証明することができます。 SELECT ...;セッションの状態を示す 'ハンドラ%'; ' –

+0

ああ、私はかなりMySQLのため、これについてはよく分かりません。ありがとう! –