У меня есть ряд последовательных строк, я хочу стать основанным на их первичном ключе, который является целым числом автопостепенного увеличения. Предположение, что нет никаких дыр, является там любой производительностью между между:
SELECT * FROM `theTable` WHERE `id` IN (n, ... nk);
и:
SELECT * FROM `theTable` WHERE `id` BETWEEN n AND nk;
a между b и c
- это макрос, который расширяется до b <= a и a <= c
.
a в (b,c,d)
- это макрос, который расширяется до a=b или a=c или a=d
.
Если предположить, что ваши n
и nk
являются целыми числами, то оба они должны в итоге означать одно и то же. Вариант between
должен быть намного быстрее, потому что это только два сравнения, по сравнению с nk - n
сравнениями для варианта in
.