90% от простого простого выбора - это издержки (сеть, анализ, оптимизация и т. Д.).
id = 123 OR id = 345
оптимизировано до id IN (123, 345)
.Если на id
есть индекс (PRIMARY KEY
- это индекс), это 2 зонда в таблице.
Так что, если выборка одной строки - это 100% усилий, то выборка 2 - это примерно 110% от этого (90% накладных расходов, затем 2 единицы реальной работы).
Между тем, 2 отдельных отборов будет составлять 200%.
С другой стороны, еслиу вас есть
WHERE x = 98 OR y = 65
, для этого нет подходящего метода индексации.
План A: Полное сканирование таблицы, проверка x и y для каждой строки.Очень медленно для большого стола.
План Б: Измените его на
( SELECT ... WHERE x = 98 )
UNION
( SELECT ... WHERE y = 65 )
Это будет больше похоже на 200%.То есть выполнение двух запросов помогает в этом случае .
План C - это «объединение слияний индекса», к которому оптимизатор прибегает лишь изредка.