O MySQL é inteligente se você especificar um
LIMIT 5000
em sua consulta, e é possível produzir esse resultado sem gerar todo o conjunto de resultados primeiro, então ele não construirá o resultado inteiro. Por exemplo, a seguinte consulta:
SELECT * FROM table ORDER BY column LIMIT 5000
Esta consulta precisará varrer toda a
table
a menos que haja um índice na column
, nesse caso ele faz a coisa inteligente e usa o índice para encontrar as linhas com a menor column
.