Эффективность Postgres - PullRequest
2 голосов
/ 12 мая 2011

Допустим, у меня есть таблица с некоторыми ключами, учетными записями и попаданиями.

Что быстрее? Я предполагаю, что мой вопрос, есть ли у postgres (или любого другого sql) оптимизатор, чтобы видеть идентичные функции в запросе

SELECT key, accounts, hits,1.0*hits/accounts as ratio FROM
(
    SELECT key, COUNT(DISTINCT accounts) as accounts, SUM(hits) as hits
    FROM table
    GROUP BY key
) a;

OR

SELECT key, COUNT(DISTINCT accounts) as accounts, SUM(hits) as hits, 1.0*SUM(hits)/COUNT(DISTINCT accounts) as ratio
FROM table
GROUP BY key;

Я бы хотел услышать все, что вы хотите сказать, или ресурсы, которые вы можете предоставить для понимания такого рода вещей. Спасибо!

1 Ответ

3 голосов
/ 12 мая 2011

Да, это так.Вот для чего нужна волатильность функции.

http://www.postgresql.org/docs/current/static/sql-createfunction.html

См. VOLATILE vs STABLE vs IMMUTABLE.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...