Есть безобидный запрос
SELECT DISTINCT messages.contact_id FROM messages WHERE messages.failed != true AND messages.timestamp_sent > какое-то значение
Еще я недавно столкнулся с тем, что оптимизатор подзапрос, выбирающий общий для всего запроса набор ключей, который в памяти теоретически занимает менее мегабайта, иногда (тоже в зависимости от значения datetime-поля) решает вместо однократного выполнения перед запросом (MATERIALIZED) выполнять для каждой строки выборки (DEPENDENT SUBQUERY), увеличивая время выполнения запроса с секунд или минут до более суток.
Главный вопрос: оптимизация MySQL/MariaDB настолько говно, или я чего-то не понимаю? Если первое, то есть ли смысл валить на PostgreSQL?