Оптимизация запросов в Postgresql

Оптимизация запросов в Postgresql

    Оптимизируя запрос, следует обращать внимание не только на время его выполнения, но и как часто он будет выполняться.
    На скорость выполнения запроса влияют следующие способы:
    Обновление статистики, на основе которой планировщик строит планы


    Изменения исходного кода запроса
    Изменение схемы данных связанной с денормолизацией - создание материализованных представлений и временных таблиц, индексов, использование вычисляемых столбцов таблиц
    Изменение параметров планировщика - использование нужных парметров соединения планировщиком, табличных выражений WITH, фиксированный порядок соединения(join_collapse_limit = 1), запрет раскрытия подзапросов и преобразования их в соединения таблиц (параметр from_collapse_limit = 1)
    Изменение параметров планировщика агрегирование на основе хеширования (enable_hashagg), материализация временных наборов строк (enable_material), выполнение явной сортировки при наличии других возможностей (enable_sort), выбором метода доступа к данным (enable_seqscan, enable_indexscan, enable_indexonlyscan, enable_bitmapscan) и способасоединения наборов строк (enable_nestloop, enable_hashjoin, enable_mergejoin)

    Для выбора планировщиком правильного плана, необходима актуальная статистика
    Для обновления статистики используется команда ANALYZE (на уровне базы данных или на уровне таблицы)


    Источники
    Последнее изменение: 06.11.2024 22:43


    Связанные темы
    Здесь пока нет комментариев
    Добавлять комментарии могут только авторизованные пользователи

    Авторизоваться
    Я буду рекламой
    Я тоже буду рекламой
    И я
    ВВЕРХ