можете сказать где тут магия?)
А магии нет. Посмотрите план запроса — там понятно, что происходит. И это, в принципе, можно рассматривать и как дефект PostgreSQL — он не умеет быстро получать все различные значения какого-то поля по индексу (а в данном случае это критично — нужны все такие значения поля currency_id) — это называется https://wiki.postgresql.org/wiki/Loose_indexscan . Вот и приходится выкручиваться таким образом (есть и другие варианты, без использования таблицы currency, но они более громоздкие — см. ту же ссылку).
План который я давал? Я в нем вообще ничего понял🫤
А разве Вы показывали план вот этого https://t.me/pgsql/491586 ?
Я думал вы про мой explain который я выше давал
Там тоже понятно, что происходит — читается вся таблица, сортируется и т.п.
Обсуждают сегодня