DO
Size: a a a
DO
DO
G
ДМ
CREATE OR REPLACE VIEW public.contacts_countИ на этот view я шлю запрос select (*) from contacts_count, вот этот запрос выполняется очень долго
AS SELECT contacts.user_id,
count(contacts.user_id) AS count
FROM contacts
WHERE contacts.contact_origin::text = 'Authentic'::text
GROUP BY contacts.user_id;
YS
CREATE OR REPLACE VIEW public.contacts_countИ на этот view я шлю запрос select (*) from contacts_count, вот этот запрос выполняется очень долго
AS SELECT contacts.user_id,
count(contacts.user_id) AS count
FROM contacts
WHERE contacts.contact_origin::text = 'Authentic'::text
GROUP BY contacts.user_id;
\d contacts тоже покажите.ДМ
\d contacts тоже покажите.YS
\d contacts
ДМ
\d contacts
CREATE TABLE public.contacts (
id bigserial NOT NULL,
user_id int8 NOT NULL,
phone_number varchar NULL,
country_code varchar NULL,
contact_name varchar NULL,
email varchar NULL,
company varchar NULL,
job_title varchar NULL,
account_name varchar NULL,
contact_group int4 NULL,
created_at timestamp NULL,
updated_times int8 NOT NULL DEFAULT 0,
contact_origin varchar NULL,
CONSTRAINT contacts_pk PRIMARY KEY (id),
CONSTRAINT contacts_un UNIQUE (user_id, phone_number, country_code)
);
CREATE UNIQUE INDEX contacts_id_uindex ON public.contacts USING btree (id);
CREATE INDEX contacts_phone_number_country_code_idx ON public.contacts USING btree (phone_number, country_code);
YS
CREATE TABLE public.contacts (
id bigserial NOT NULL,
user_id int8 NOT NULL,
phone_number varchar NULL,
country_code varchar NULL,
contact_name varchar NULL,
email varchar NULL,
company varchar NULL,
job_title varchar NULL,
account_name varchar NULL,
contact_group int4 NULL,
created_at timestamp NULL,
updated_times int8 NOT NULL DEFAULT 0,
contact_origin varchar NULL,
CONSTRAINT contacts_pk PRIMARY KEY (id),
CONSTRAINT contacts_un UNIQUE (user_id, phone_number, country_code)
);
CREATE UNIQUE INDEX contacts_id_uindex ON public.contacts USING btree (id);
CREATE INDEX contacts_phone_number_country_code_idx ON public.contacts USING btree (phone_number, country_code);
CREATE INDEX ON contacts(contact_origin, user_id);И да, зачем Вы используете COUNT(contacts.user_id), когда
CREATE INDEX ON contacts(user_id) WHERE contact_origin = 'Authentic';
user_id int8 NOT NULL? Достаточно COUNT(*).b
ДМ
CREATE INDEX ON contacts(contact_origin, user_id);И да, зачем Вы используете COUNT(contacts.user_id), когда
CREATE INDEX ON contacts(user_id) WHERE contact_origin = 'Authentic';
user_id int8 NOT NULL? Достаточно COUNT(*).YS
ДМ
Planning Time: 1.155 ms
Execution Time: 5943.528 ms
ДМ
YS
Planning Time: 1.155 ms
Execution Time: 5943.528 ms
ДМ
D
D
YS
Buffers: shared hit=11185 read=665237 dirtied=2
-- PROD:
Buffers: shared hit=222 read=346797 dirtied=243 written=27
ДМ
Buffers: shared hit=11185 read=665237 dirtied=2
-- PROD:
Buffers: shared hit=222 read=346797 dirtied=243 written=27