Postgresql count (*) is very slow on a large table

SELECT
T . ID,
T . DATE,
T . TIME,
T .i_want,
T .i_want_date,
T .i_want_date_to,
T . ACTION,
T .country,
T .url,
T .user_agent,
(
    SELECT
        client. NAME
    FROM
        client client
    WHERE
        client. ID = T .client_id
) AS client_name,
(
    SELECT
        segment. NAME
    FROM
        segment segment
    WHERE
        segment. ID = T .segment_id
) AS segment_name
   FROM
analytics_visitors T 
   WHERE
(1 = 1)
   AND (T .site_id = 3)

And when I use an account for it to assign a page, for example

SELECT "count"(*) FROM analytics_visitors T WHERE (1 = 1) AND (T .site_id = 3)

too slow, please give any solution how I can optimize it or even change my main query, my postgresql is version 9.3, it contains 20,000,000+ lines and is also indexed.

+4
source share

Source: https://habr.com/ru/post/1543504/


All Articles