Re: Speed up this query

Поиск
Список
Период
Сортировка
От Mark Stosberg
Тема Re: Speed up this query
Дата
Msg-id eqflkm$g1t$1@news.hub.org
обсуждение исходный текст
Список pgsql-performance
jeff.ward@gmail.com wrote:
> Hi all,
>
> I'm fairly new to SQL, so this is probably a dumb way to form this
> query, but  I don't know another.
>
> I want to see the usernames of all the users who have logged on
> today.  "users" is my table of users with id's and username's.
> "session_stats" is my table of user sessions where I store site
> activity, and it has a user_id column.
>
> SELECT username FROM users WHERE id IN (SELECT DISTINCT user_id FROM
> session_stats $dateClause AND user_id!=0)

Jeff,

It looks like you need a JOIN instead:

SELECT username from users
  JOIN session_stats ON (users.id = session_stats.user_id)
  WHERE $dateClause AND user_id != 0);

Check that you also have indexes on both of those columns (check the
docs for "CREATE INDEX" for details. )

   Mark

В списке pgsql-performance по дате отправления:

Предыдущее
От: Benjamin Minshall
Дата:
Сообщение: stats collector process high CPU utilization
Следующее
От: Tom Lane
Дата:
Сообщение: Re: stats collector process high CPU utilization