Анализ времени обработки запросов при увеличении количества столбцов в таблице базы данных | Статья в журнале «Молодой ученый»

Отправьте статью сегодня! Журнал выйдет 3 мая, печатный экземпляр отправим 7 мая.

Опубликовать статью в журнале

Авторы: ,

Научный руководитель:

Рубрика: Информационные технологии

Опубликовано в Молодой учёный №15 (566) апрель 2025 г.

Дата публикации: 11.04.2025

Статья просмотрена: 25 раз

Библиографическое описание:

Грознов, А. Д. Анализ времени обработки запросов при увеличении количества столбцов в таблице базы данных / А. Д. Грознов, А. Д. Лепин. — Текст : непосредственный // Молодой ученый. — 2025. — № 15 (566). — С. 14-17. — URL: https://moluch.ru/archive/566/124071/ (дата обращения: 19.04.2025).



Введение

При проектировании базы данных важно учитывать влияние структуры таблиц на производительность. Одним из ключевых факторов, способных замедлить выполнение операций, является число столбцов. Зависимость между этим фактором и производительностью обработки запросов кажется вполне очевидной. Но в данном исследовании изучается, как этот параметр влияет на скорость обработки запросов и какой характер имеет это влияние. Эта статья может быть полезна разработчикам, так как в специфических ситуациях, в которых есть необходимость использования таблиц с большим количеством столбцов, результат исследований может помочь принимать обоснованные решения при проектировании схемы данных.

Подготовка к проведению исследования

Поскольку время обработки запросов зависит от множества факторов, важно провести обширное тестирование для каждого сценария — решено было выполнять по 10 000 тестов для различных конфигураций, чтобы полученные данные были более точными . Так же чтобы минимизировать влияние внешних факторов, таких как нагрузка на систему или специфика оборудования, тесты проводились в изолированной среде (Docker-контейнер).

Для сбора данных был разработан Python-скрипт, который автоматизирует следующие шаги:

  1. Создание таблиц с различным числом столбцов (от 1 до 1500).
  2. Выполнение 10'000 операций вставки данных (INSERT) для каждой таблицы, чтобы получить значимые результаты.
  3. Фиксация времени исполнения каждого запроса.

Ключевые компоненты скрипта включают:

  1. Подключение к базе данных.
  2. Удаление старой версии таблицы и её пересоздание.
  3. Формирование SQL-запросов и их выполнение.
  4. Измерение времени обработки каждого запроса.
  5. Сбор и запись результатов в таблицу Excel для их дальнейшего анализа

Такой подход позволил стандартизировать процесс тестирования и минимизировать погрешности.

Результаты

Используя полученные данные составлен график регрессии (рис. 1), демонстрирующий зависимость времени выполнения запросов от числа столбцов, на котором явно виден положительный тренд. График позволяет визуально оценить, как увеличение количества столбцов влияет на производительность системы, а также увидеть, насколько точно построенная модель соответствует реальным данным. Этот анализ является важным этапом исследования, так как он помогает выявить критические точки, при которых производительность системы начинает значительно снижаться, и предоставляет основу для дальнейших оптимизаций и улучшений.

График регрессии

Рис. 1. График регрессии

Данные показали, что с ростом числа столбцов время обработки запросов увеличивается. Наибольший скачок производительности наблюдается после 700 столбцов. Однако при 1500 столбцах время выполнения снизилось по сравнению с диапазоном 700–1400, что требует дополнительного изучения. Статистика времени выполнения представлена в таблице 1. Результаты проведенного дисперсионного анализа представлены в таблице 2.

Таблица 1

Статистика времени выполнения

Количество столбцов

Среднее время (с)

Сумма (с)

Дисперсия

1

0,0021

20,99751

1,90108E-06

100

0,002824

28,24247

1,30901E-06

200

0,003766

37,65849

4,15983E-06

300

0,005619

56,18852

1,03388E-05

400

0,006288

62,8842

1,28009E-06

500

0,008015

80,154

2,86706E-06

600

0,010132

101,3227

2,17289E-06

700

0,060804

608,04

1,42536E-05

800

0,061128

611,2833

3,01716E-05

900

0,061254

612,5426

0,000162464

1000

0,070197

701,9732

2,18511E-05

1100

0,070984

709,8432

2,53552E-05

1200

0,072137

721,3726

6,1649E-05

1300

0,078449

784,4939

9,26316E-05

1400

0,074129

741,2879

0,000243052

1500

0,044118

441,1761

7,34456E-06

Таблица 2

Результаты дисперсионного анализа

Источник вариации

SS

df

MS

F

P-Значение

F критическое

Между группами

152,5671

15

10,17114

238339,164

0

1,666448

Внутри групп

6,827326

159984

4,27E-05

Итого

159,3944

159999

– F-значение (238339) значительно превышает критическое (1,666), что подтверждает статистическую значимость различий.

– P-значение (0) указывает на высокую достоверность результатов.

Дисперсия между группами значительно превосходит дисперсию внутри групп . Это указывает на то, что различия между группами во много раз больше случайных колебаний внутри групп.

Вывод

– Увеличение числа столбцов приводит к большей нагрузке на СУБД из-за:

  1. Расширения объема обрабатываемых данных.
  2. Усложнения индексации и оптимизации запросов.
  3. Менее эффективного использования кэша.

– Неожиданное снижение времени в случае с 1500 столбцами может объясняться:

  1. Оптимизацией хранения данных (например, сжатием).
  2. Переключением СУБД на более эффективные алгоритмы обработки широких таблиц.
  3. Влиянием фоновых процессов (например, кэширование или параллельная обработка).

Практические рекомендации

– До 700 столбцов рост времени незначителен, но после этого порога производительность резко падает. Следует избегать чрезмерно широких таблиц или использовать стратегии по их оптимизации, такие как:

  1. Вертикальное партиционирование
  2. Переход на документные или колоночные БД
  3. Использование JSON-полей в реляционных БД

– Результаты могут варьироваться в зависимости от СУБД (PostgreSQL, MySQL, и т. д.) и её настроек. Перед внедрением рекомендуется проводить нагрузочное тестирование.

Заключение

Исследование подтвердило, что увеличение числа столбцов негативно влияет на производительность, особенно после определенного порога (в 700 столбцов). Заметное снижение производительности наблюдается только после 700 столбцов, до этой границы время выполнения растет не так быстро. Аномальные результаты при 1500 столбцах показывают, что современные СУБД могут адаптироваться к большим объемам данных, используя скрытые механизмы оптимизации. Однако если возникает необходимость использования широких таблиц, нужно сформировать требования к производительности системы, и при желании ускорить работу БД, рекомендуется воспользоваться одной из стратегий по оптимизации структуры.

Темы для дельнейшего продолжения исследования

– Анализ влияния индексов на широкие таблицы

– Анализ времени обработки при тех же условиях запросов SELECT

– Анализ влияния типов данных

Литература:

  1. Моделирование сложных вероятностных систем: учеб. пособие / В. Г. Лисиенко, О. Г. Трофимова, С. П. Трофимов, Н. Г. Дружинина, П. А. Дюгай. Екатеринбург: УРФУ, 2011. 200 с.
  2. Владимирский Б. М. Математика. Общий курс: учебник для вузов / Б. М. Владимирский, А. Б. Горстко, Я. М. Ерусалимский. СПб.: Лань, 2008. 960 с.
Основные термины (генерируются автоматически): некачественный товар, продавец, гарантийный срок, недостаток товара, президиум ВС РФ, РФ, товар, возврат товара, общее правило, Постановление Пленума ВС РФ.


Похожие статьи

Задать вопрос