169 похожих чатов

Доброго вечера есть таблица request_logs, в которой хранится великое множество записей

о запросах на сторонние сервисы. в ней очень много записей

есть фильтрация на странице в админке по дате создания. если поставить большой интервал, запрос падает по тайм ауту

добавление индекса не помогает, так как планировщик запросов все равно юзает seq scan на больших объемах данных (на небольших - индекс все же юзается). если принудительно отключить seq scan, то планировщик начинает использовать индекс и запрос выполняется в 2 раза быстрее.

можно ли каким-то образом для конкретного запроса заставить планировщик юзать индекс?
и есть ли идеи, как еще можно улучшить скорость выполнения?

11 ответов

40 просмотров

Типа find_each что-то пробовали?

Если большой запрос от сек скана не уйти. Решить можно пагинацией например

Shrek44
Типа find_each что-то пробовали?

Частичная подгрузка, проанализировать и выгружать только нужные поля, мб какая-то агрегация нужна чтобы не в тупую по всему проходиться

Роман Хайдаров
Частичная подгрузка, проанализировать и выгружать ...

Нужен сфинкс или эластик или что-то типа такого

Olexandr K.
Нужен сфинкс или эластик или что-то типа такого

Не работал с эластик. Если данных овер дох… не будет проблем с реинднксированием полей поиска?

Shrek44
Спасибо

ещё радикальное решение есть, если постоянно приходиится обращаться к проблемной таблице "как заноза в" возможно стоит рассмотреть гаризонтальное или вертикальное разделение таблиц

Вообще логи просто такие надо в кликхаузе хранить если по ним агреггация по гигантским объемам, по поводу перехода на seq scan возможно у него веса расставленны так, вернее если он выбирает секскан как я понимаю значит планировщик решил что он будет выгоднее, я видел в интернете решения, как например запускать VACUUM ANALYZE чтобы он пересчитывал веса, или изменить их в конфиге например вот чтото есть https://stackoverflow.com/questions/23143463/why-is-postgres-scanning-a-huge-table-instead-of-using-my-index

1. Для таких логов удобнее пользоваться clickhouse, он как раз хорошо аггрегирует поколоночно и ищет записи в больших сегментах, но не выбирает, выбирает медленно по идее. 2. Планировщику можно изменить веса в конфиге как показано здесь https://stackoverflow.com/a/23144500 или попробовать заставить переанализировать таблицу VACUUM ANALYZE я бы попробовал, может в этом дело.

Выше верно написали про clickhouse. В идеале переходить на энтерпрайз стандарт логирования. Коллектор + OLAP хранилище + графана. В любом из мейнстрим паттернов реализована разбиение и уплотнение временных чанков

Партиционировать

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
1
Он в одиночку это дело запилил или была какая-то команда?
Aquinary
12
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Карта сайта