Оптимизация запросов к базе данных в приложении для анализа корпусов поэтических текстов

Семинар: Информационные технологии в задачах филологии и компьютерной лингвистики
Начало заседания: 17:30

Дата выступления: 15 Октябрь 2024

Организация: ФИЦ ИВТ, НГУ (Новосибирск)

Авторы: д.т.н. Барахнин Владимир Борисович, Карпов Матвей Владимирович, к.ф.-м.н. Мачикина Елена Павловна

В докладе проводится формализация задачи оптимизации запросов к базе данных в приложении для анализа корпусов поэтических текстов, формулируемой как улучшение качества использования приложения посредством увеличения продуктивности работы пользователя в системе, то есть сокращения времени реакции системы на действие пользователя. Излагается общая стратегия оптимизации запросов, сводящаяся к трем основным направлениям: изменение исходного кода программы в функции, в которой он взаимодействует с базой данных, то есть изменение способа взаимодействия; изменение структуры запроса к базе данных; изменение структуры самой базы данных. Технологии, использованные для создания оптимизируемой программной системы, таковы: приложение написано на языке программирования Python с использованием веб-фреймворка Flask, работа с базой данных осуществляется посредством библиотеки SQLAlchemy, а в качестве СУБД выбрана PostgreSQL, для тестирования функциональности оптимизируемых запросов была использована библиотека pytest. Приводятся конкретные примеры оптимизации в следующих типичных ситуациях: долгое выполнение какого-либо из этапов запроса на получение данных, решаемое изменением структуры запроса посредством добавления индекса; долгое выполнение какого-либо из этапов запроса на изменение данных, решаемое изменением структуры запроса посредством удаления индекса; большое количество запросов в цикле, решаемое заменой запросов в цикле на эквивалентный запрос вне цикла. Результаты вычислительных экспериментов показали высокую эффективность предложенной методики оптимизации.