Звучит так, будто ты хочешь то, что известно как блокировка. Однако на самом деле это не обрабатывается (не так, как вы думаете) на уровне базы данных - оно обрабатывается на уровне приложения. Вам нужно указать свою платформу и язык программирования, чтобы мы могли там помочь. Хотя если вы ожидаете, что кто-то на самом деле прочитает 2 миллиона строк, это займет некоторое время ... Одна строка в секунду - это 23 дня подряд.
Причина в том, что SQL на самом деле не выполняет это "изначально", заключается в том, что он (своего рода) менее эффективен. Кроме того, SQL (по замыслу) настроен на работу с полным набором данных, как концептуально, так и синтаксически.