index на таблицу с ~ 700 000 записей: чем занят постгрес???
От | Anton |
---|---|
Тема | index на таблицу с ~ 700 000 записей: чем занят постгрес??? |
Дата | |
Msg-id | 8cac8dd0612111010r5497e742q9ead6f80e0593dc5@mail.gmail.com обсуждение исходный текст |
Список | pgsql-ru-general |
На днях подумал я о бэкапе и воссоздании базы... Сдампил, после некоторых тестов закомментарил в дампе создание индексов на таблицу n_traffic (почему - ниже). Если что, default_statistics_target = 350, хотя было от 200 до 800 не дождался так и так. Дело вот такое. Создалась и заполнилась таблица =# \d n_traffic Table "public.n_traffic" Column | Type | Modifiers --------------+-----------------------------+------------------------------ login_id | integer | not null traftype_id | integer | not null collect_time | timestamp without time zone | not null default now() bytes_in | bigint | not null default (0)::bigint bytes_out | bigint | not null default (0)::bigint Indexes: "n_traffic_login_id" btree (login_id) Foreign-key constraints: "n_traffic_login_id_fkey" FOREIGN KEY (login_id) REFERENCES n_logins(login_id) ON UPDATE CASCADE "n_traffic_traftype_id_fkey" FOREIGN KEY (traftype_id) REFERENCES n_traftypes(traftype_id) ON UPDATE CASCADE В ней более 700 000 записей, collect_time в основном раз в 5 минут, то есть идут пачки строк, штук по сотне и больше, с одним collect_time. Делаю для порядка даже =# VACUUM FULL ANALYZE n_traffic ; Затем =# CREATE INDEX n_traffic_collect_time ON n_traffic(collect_time); ...и это замирает надоооолго. Я не стал ждать конца, пока что оставлю на ночь и спать пойду. Покопал в архивах, пересмотрел настройки, изменений не видать. systat vmstat показывает почти полное отсутствие активности диска, нет-нет возникают какие-то килобайты, и постоянную полную загрузку проца. top показывает PID USERNAME PRI NICE SIZE RES STATE WAIT TIME CPU COMMAND 19715 _postgre 64 0 26M 80M onproc/1 - 24:36 99.07% postgres До этого был unique индекс на логин, тип и время, но я уже его совсем закомментарил, боюсь ТАКОГО не дождусь и за неделю... :-(( Возникает вопрос (в свете замечаний в архиве от Oleg Bartunov о том, что он и на 500 миллионов записей создавал индексы) - а что собсно постгрес делает всё это время и делает ли что-то полезное? Чего это он жучит проц, но почти ничерта не читает/пишет на диск? -- engineer
В списке pgsql-ru-general по дате отправления: