Одна из самых скрытых тормозящих привычек - везде писать SELECT *. Ты тащишь лишние колонки, ломаешь использование покрывающих индексов и нагружаешь память. Гораздо эффективнее выбирать только те поля, которые реально нужны в ответе, и делать по ним составной индекс. Тогда база может обслужить запрос прямо из индекса, без чтения таблицы с диска. Подписывайся, больше фишек каждый день !
-- плохой вариант: тянем все колонки
SELECT *
FROM orders
WHERE customer_id = 42
AND status = 'PAID';
-- лучше: только нужные поля (можно сделать covering index)
SELECT id, total_amount, paid_at
FROM orders
WHERE customer_id = 42
AND status = 'PAID';