В видео рассказывается о том, как работает PostgreSQL, и о том, что он использует только один движок хранения данных.
В PostgreSQL используются общие системные счетчики, такие как обжиг, общая память, общий диск, и они не могут быть ограничены или разделены между базами данных.
В видео рассказывается о том, как можно ускорить работу с данными в PostgreSQL, используя различные оптимизации.
Одна из оптимизаций - использование лидера, который сбрасывает свои данные до определенной позиции в вале, а остальные сбрасывают свои данные после него.
В видео обсуждаются различные механизмы блокировки в PostgreSQL, включая блокировку на уровне транзакций, блокировку на уровне строк и блокировку на уровне страниц.
Блокировка на уровне транзакций используется для предотвращения одновременного выполнения нескольких транзакций, которые могут привести к конфликтам.
Блокировка на уровне строк используется для предотвращения одновременного изменения одной и той же строки несколькими транзакциями.
Блокировка на уровне страниц используется для предотвращения одновременного изменения нескольких страниц одной и той же таблицы.
В видео обсуждается проблема с памятью в PostgreSQL, связанная с использованием большого буфер-пула.
Если буфер-пул слишком большой, это может привести к проблемам с производительностью, так как процесс, который сбрасывает данные, должен обходить весь буфер-пул.
В результате, операции, такие как транкейты и дроб-тейблы, могут стать медленными и неэффективными.
Рекомендуется избегать использования операций, которые требуют обхода всего буфер-пула, таких как транкейты и дроб-тейблы.
Обсуждение использования временных таблиц в PostgreSQL
Для расчета ресурсов для PostgreSQL можно использовать приблизительные значения: половину подшаренной памяти до терабайта, четверть для кэша операционной системы и остаток разделить на максимальное количество подключений.
Важно учитывать, что настройки для планера и бэк-энда могут отличаться, поэтому лучше использовать разные планы для разных процессов.
В видео обсуждается проблема с количеством максимальных коннектов в PostgreSQL, которая возникает из-за экспоненциального роста времени ожидания в локах при увеличении количества коннектов.
Также обсуждается вопрос о том, как разделить память между двумя кластерами на одной железке, и как это влияет на файловый кэш.
В видео объясняется, что в PostgreSQL нет встроенного механизма для фейловер кластеринга, но существуют некоторые инструменты, такие как триггер файлы и другие, которые могут помочь в решении этой задачи.
Обсуждается, как изменение некоторых параметров в PostgreSQL может повлиять на данные и как это может привести к необходимости перекомпиляции бинаря.
В видео обсуждается использование индексов в запросах и то, что только канкарный индекс может быть использован на бэ три.
Упоминается, что если часть запроса покрывается индексом, а остальные колонки из индекса не попадают в индекс, то это может привести к снижению производительности.