Мне нужно сделать запрос, чтобы проверить, является ли значение столбца 2117 или 0.
В настоящее время я делаю это с помощью ИЛИ
select [...] AND (account_id = 2117 OR account_id = 0) AND [...]
Поскольку у меня проблемы с производительностью, я бродил, не лучше ли это сделать
select [...] AND account_id IN (0, 2117) AND [...]
Команда объяснения дает одинаковые результаты в обоих случаях. Так что, возможно, это больше касается оптимизации фазы разбора, чем чего-либо еще. Или, может быть, эти два способа полностью эквивалентны и оптимизированы MySQL, и мне просто наплевать.
На веб-сайте mySQL они говорят об оптимизации OR следующим образом:
Используйте x = ANY (таблица, содержащая (1,2)), а не x = 1 ИЛИ x = 2.
Но я неправильно понял синтаксис или даже не понял, почему.
Что вы думаете?