В PostgreSQL именно то, что вы здесь получите, зависит от базовой таблицы, поэтому вы должны использовать EXPLAIN ANALYZE в некоторых примерах запросов к полезному подмножеству ваших данных, чтобы точно определить, что собирается делать оптимизатор (убедитесь, что таблицы, с которыми вы работаете, тоже были проанализированы). IN может быть обработан несколькими различными способами, и поэтому вам нужно посмотреть на некоторые примеры, чтобы выяснить, какая альтернатива используется для ваших данных. На ваш вопрос нет простого общего ответа.
Что касается конкретного вопроса, который вы добавили в свою ревизию, для тривиального набора данных без индексов, вот пример двух планов запросов, которые вы получите:
postgres=# explain analyze select * from x where s in ('123','456');
Seq Scan on x (cost=0.00..84994.69 rows=263271 width=181) (actual time=0.015..1819.702 rows=247823 loops=1)
Filter: (s = ANY ('{123,456}'::bpchar[]))
Total runtime: 1931.370 ms
postgres=# explain analyze select * from x where s='123' or s='456';
Seq Scan on x (cost=0.00..90163.62 rows=263271 width=181) (actual time=0.014..1835.944 rows=247823 loops=1)
Filter: ((s = '123'::bpchar) OR (s = '456'::bpchar))
Total runtime: 1949.478 ms
Эти две среды выполнения по существу идентичны, потому что в реальном времени обработки преобладает последовательное сканирование по таблице; многократный запуск показывает разницу между ними ниже допустимого диапазона погрешности. Как видите, PostgreSQL преобразует регистр IN в свой ЛЮБОЙ фильтр, который всегда должен выполняться быстрее, чем серия OR. Опять же, этот тривиальный случай не обязательно отражает то, что вы увидите в серьезном запросе, где задействованы индексы и тому подобное. В любом случае, ручная замена IN на серию операторов OR никогда не должна выполняться быстрее, потому что оптимизатор знает, что лучше всего сделать здесь, если у него есть хорошие данные для работы.
В общем, PostgreSQL знает больше хитростей для оптимизации сложных запросов, чем оптимизатор MySQL, но он также сильно зависит от того, что вы дали оптимизатору достаточно данных для работы. Первые ссылки в разделе «Оптимизация производительности» вики-сайта PostgreSQL охватывают самые важные вещи, необходимые для получения хороших результатов от оптимизатора.