Comparative analysis of indexing strategies in PostgreSQL under various load scenarios

Cover Page

Cite item

Full Text

Abstract

The subject of the study is the effectiveness of various indexing strategies implemented in PostgreSQL and their impact on the performance of SELECT, UPDATE and INSERT operations in conditions of different data scales. The object of the study are the B-Tree, GIN and BRIN indexes used to optimize the operation of databases. The author examines in detail such aspects of the topic as the time characteristics of operations, the size of indexes and their resource intensity. Special attention is paid to the impact of data volume on the performance of indexes and their suitability for working with various types of data, including JSONB. The research is aimed at systematizing knowledge about the use of indexes to improve the efficiency of highly loaded systems, which require optimization of access operations, updating and inserting data, as well as analysis of resource consumption. The leading research method is an empirical approach, which includes the development of a test database with orders, customers, and products tables. Experiments were conducted for SELECT, UPDATE, and INSERT operations on small, medium, and large amounts of data. The metrics of query execution time and index size obtained using PostgreSQL tools were used for the analysis. The novelty of the research lies in conducting a comprehensive performance analysis of the B-Tree, GIN, and BRIN indexes in PostgreSQL when performing typical operations on various amounts of data. The main conclusions of the conducted research are recommendations on the choice of indexes depending on the types of queries and their execution conditions. B-Tree indexes have proven their versatility, demonstrating high performance for SELECT and UPDATE operations. GIN indexes have shown advantages for working with JSONB data, but their use is limited by high resource intensity. BRIN indexes have proven to be effective for large amounts of data, especially for SELECT operations, due to their compactness and low overhead. A special contribution of the author to the research of the topic is the creation of recommendations for database developers, which makes it possible to improve application performance by choosing an optimal indexing strategy.

References

  1. Домбровская Г. Оптимизация запросов в PostgreSQL. М.: ДМК-Пресс, 2022.
  2. Mostafa A. S. A Case Study on B-Tree Database Indexing Technique // Journal of Soft Computing and Data Mining. 2020. № 27-3. URL: https://penerbit.uthm.edu.my/ojs/index.php/jscdm/article/view/6828 (дата обращения: 10.01.2025).
  3. Borodin A., Mirvoda S., Porshnev S., Ponomareva O. Improving generalized inverted index lock wait times // Journal of Physics: Conf. 2018. №944. URL: https://iopscience.iop.org/article/10.1088/1742-6596/944/1/012022/pdf (дата обращения: 10.01.2025).
  4. Borodin A., Mirvoda S., Kulikov I., Porshnev S. Optimization of Memory Operations in Generalized Search Trees of PostgreSQL // Communications in Computer and Information Science. 2017. № 716. URL: https://link.springer.com/chapter/10.1007/978-3-319-58274-0_19 (дата обращения: 10.01.2025).
  5. Рогов Е. В. PostgreSQL 16 изнутри. М.: ДМК Пресс, 2024.
  6. Морозов С. В., Нестеров С. А. Сравнительный анализ типов индексов в СУБД SQL Server и PostgreSQL // SAEC. 2024. № 2. С. 485–491.
  7. Селиванов Е. О. Сравнение типов индексов в различных системах управления базами данных // Молодежь и наука: актуальные проблемы фундаментальных и прикладных исследований: Материалы VI Всероссийской национальной научной конференции молодых учёных. Комсомольск-на-Амуре: Комсомольский-на-Амуре государственный университет, 2023. С. 357–361.
  8. Кудашов А. С., Агапова В. А., Дьячков Д. А., Казакова И. А. Обзор типов индексов и их применение в системах управления базами данных // Современные цифровые технологии. Материалы II Всероссийской научно-практической конференции. Барнаул: Алтайский государственный технический университет им. И. И. Ползунова, 2023. C. 299–303.
  9. Documentation PostgreSQL 15 – URL: https://www.postgresql.org/docs/15/release-15-2.html (date of access: 10.01.2025).
  10. Сорокин В. Е. Хранение и эффективная обработка нечетких данных в СУБД PostgreSQL // Программные продукты и системы. 2017. № 4. URL: https://app.amanote.com/v4.1.10/research/note-taking?resourceId=Pprz23MBKQvf0Bhi37cu (дата обращения: 10.01.2025).
  11. B-tree индексы в базах данных на примере PostgreSQL. – URL: https://techtrain.ru/talks/e2273ec8ca2b4ea692c65318a50c4be5 (дата обращения: 10.01.2025).
  12. Меджидов Р. Г. Анализ многоколоночных индексов баз данных // Актуальные проблемы прикладной математики, информатики и механики : Сборник трудов Международной научной конференции. Воронеж : Научно-исследовательские публикации, 2019. C. 420–422.
  13. Богатов И. В. Эффективная оптимизация запросов в СУБД Postgres / Академическая публицистика. 2022. № 5-2. C. 59–64.

Supplementary files

Supplementary Files
Action
1. JATS XML

Согласие на обработку персональных данных с помощью сервиса «Яндекс.Метрика»

1. Я (далее – «Пользователь» или «Субъект персональных данных»), осуществляя использование сайта https://journals.rcsi.science/ (далее – «Сайт»), подтверждая свою полную дееспособность даю согласие на обработку персональных данных с использованием средств автоматизации Оператору - федеральному государственному бюджетному учреждению «Российский центр научной информации» (РЦНИ), далее – «Оператор», расположенному по адресу: 119991, г. Москва, Ленинский просп., д.32А, со следующими условиями.

2. Категории обрабатываемых данных: файлы «cookies» (куки-файлы). Файлы «cookie» – это небольшой текстовый файл, который веб-сервер может хранить в браузере Пользователя. Данные файлы веб-сервер загружает на устройство Пользователя при посещении им Сайта. При каждом следующем посещении Пользователем Сайта «cookie» файлы отправляются на Сайт Оператора. Данные файлы позволяют Сайту распознавать устройство Пользователя. Содержимое такого файла может как относиться, так и не относиться к персональным данным, в зависимости от того, содержит ли такой файл персональные данные или содержит обезличенные технические данные.

3. Цель обработки персональных данных: анализ пользовательской активности с помощью сервиса «Яндекс.Метрика».

4. Категории субъектов персональных данных: все Пользователи Сайта, которые дали согласие на обработку файлов «cookie».

5. Способы обработки: сбор, запись, систематизация, накопление, хранение, уточнение (обновление, изменение), извлечение, использование, передача (доступ, предоставление), блокирование, удаление, уничтожение персональных данных.

6. Срок обработки и хранения: до получения от Субъекта персональных данных требования о прекращении обработки/отзыва согласия.

7. Способ отзыва: заявление об отзыве в письменном виде путём его направления на адрес электронной почты Оператора: info@rcsi.science или путем письменного обращения по юридическому адресу: 119991, г. Москва, Ленинский просп., д.32А

8. Субъект персональных данных вправе запретить своему оборудованию прием этих данных или ограничить прием этих данных. При отказе от получения таких данных или при ограничении приема данных некоторые функции Сайта могут работать некорректно. Субъект персональных данных обязуется сам настроить свое оборудование таким способом, чтобы оно обеспечивало адекватный его желаниям режим работы и уровень защиты данных файлов «cookie», Оператор не предоставляет технологических и правовых консультаций на темы подобного характера.

9. Порядок уничтожения персональных данных при достижении цели их обработки или при наступлении иных законных оснований определяется Оператором в соответствии с законодательством Российской Федерации.

10. Я согласен/согласна квалифицировать в качестве своей простой электронной подписи под настоящим Согласием и под Политикой обработки персональных данных выполнение мною следующего действия на сайте: https://journals.rcsi.science/ нажатие мною на интерфейсе с текстом: «Сайт использует сервис «Яндекс.Метрика» (который использует файлы «cookie») на элемент с текстом «Принять и продолжить».