Если нет предложения WHERE (например, запрос, который вы опубликовали), и вы выбираете миллион строк, есть хорошая вероятность, что вместо того, чтобы запрос занимает 2-3 секунды для его выполнения, на самом деле требуется время для отправки данные по сети.
Может ли ваше приложение фактически использовать миллион записей базы данных сразу? Если вы показываете эти данные пользователю, вы, скорее всего, будете его подкачкой, поэтому измените свой запрос, чтобы выбрать данные в более управляемых фрагментах.
SELECT id, value
FROM foo
LIMIT $offset, $pgsize -- these two values will come from your application
Если вам действительно нужны все эти строки сразу, я предлагаю вам их кешировать.
"select id, value from foo" ... без предложения where? –
no where статья – Sam
«Ну, вот ваши проблемы!» - Adam Savage –