Артем, а в чем необходимость делать выборку всех миллионов записей за один запрос? Ведь миллион строк за 1 раз не просто ни отобразить ни на экране, ни передать по сети?! Это тупо много данных.
Артем, 3-й пункт будет означать на практике необходимость считывания миллиона строк данных за миллисекунды. А для чтения такого объема данных нужна высокая скорость чтения с диска.