УДК 004.6

ИССЛЕДОВАНИЕ И СРАВНЕНИЕ СКОРОСТИ РАБОТЫ СУБД ACCESS, MS MYSQL И MONGDB ПРИ РАБОТЕ СО СЛОЖНЫМИ СТРУКТУРАМИ ДАННЫХ.

Б.В. Русинка, Л. И. Дорожко

Донецкий национальный технический университет, г. Донецк, Украина

В данной статье выполнен обзор существующих СУБД и областей их применения. Разработан алгоритм поэтапного тестирования сложных по структуре баз данных.

Ключевые слова: СУБД, база данных, транзакции, запросы.

Постановка проблемы: Базы данных являются очень удобным способом хранения больших массивов данных, а также предоставляют гибкий инструмент управления этими данными – запросы. На сегодняшний день существует достаточно большое количество систем управления базами данных (СУБД). Для сложных структур данных используют реляционные СУБД [2], а для более простых структур данных, например, для сайтов и порталов в последнее время все чаще используют документо-ориентированные СУБД. Документо-ориентированные СУБД характеризуются простотой и скоростью работы, однако не предназначены для работы со сложными структурами. NoSQL база данных MongoDB [1] предоставляет очень много инструментов для решения данной проблемы, однако еще не тестировалась для реализации более сложных проектов, в связи с чем есть необходимость исследовать переносимость баз данных для РСУБД на Mongo и сравнить скорость выполнения запросов. Положительные результаты тестирования будут говорить о том, что можно оптимизировать сложные проекты, используя документо-ориентированные СУБД.

Анализ предыдущих результатов тестирования: Полномасштабное тестирование возможностей MongoDB не проводилось, поскольку это относительно новая СУБД и постоянно развивается. В связи с этим новые инструменты, такие как горизонтальное масштабирование и партиционирование [4] появились не так давно в данной СУБД. Основное тестирование и сравнение проводилось в 2010 году, где сравнивались MySQL и MongoDB. Результаты тестирования [3] были весьма противоречивы, поскольку некоторые из запросов были сделаны не совсем верно, что в свою очередь повлекло и ошибку при оценке производительности данных СУБД. Количество записей в базе при тестировании было порядка 10000, а запросы выполнялись по первичному ключу, т.е. тестирования с использованием JOIN не было. Скорость работы зависела от того, какой тип таблиц использовался – MyISAM или InnoDB, а так же какой тип запроса был выполнен – INSERT или SELECT. К тому же, не было проведено тестирования при больших нагрузках, например, 100 запросов в секунду или больших объемах данных в 2,000,000 строк. Результаты тестирования были представлены в виде табличных данных и графиков. Пример приведен на рисунке 1. Можно сделать вывод, что необходимых исследований о возможности применения такой базы данных как MongoDB для хранения больших объемов данных со сложной структурой не было.

Рисунок 1 – Результаты тестирования MySQL и MongoDB.

Постановка задачи: Реализация базы данных Access «Борей» на MongoDB и MySQL, а также полномасштабное тестирование скорости выполнения запросов в данные БД, что позволит сделать предположение о целесообразности использования документо-ориентированной СУБД для реализации сложных проектов. Необходимо провести тестирование по различным критериям и предоставить данные в табличном виде, а также в виде графиков и диаграмм, для более наглядного сравнения.

Разработка алгоритма

Учебная база данных «Борей», предоставленная Access, выбрана для тестирования не случайно. В этой базе используется более 10 таблиц с достаточно сложными связями, что вполне удовлетворяет требованиям для дальнейших исследований. Данную базу необходимо реализовать в MS SQL и MongoDB. Поскольку MongoDB и Access являются идеологически различными СУБД, то на данном этапе будет проверено, насколько сложно реализовывать сложные структуры в документо-ориентированной СУБД.

Следующим этапом является заполнение этих баз данных. В это время будет проводиться тестирование скорости выполнения запросов INSERT (и соответствующих аналогов для MongoDB). Измерения будут проводиться при добавлении 2.000, 200.000 и 2.000.000 записей по ключу. На данном этапе можно будет сделать вывод о том, какая база данных предпочтительнее для записи. Однако, поскольку тип таблиц также влияет на скорость записи ( MyISAM или InnoDB), то тестирование будет проводиться и с учетом данных особенностей.

Когда таблица заполнена, можно приступать к следующему, самому сложному этапу – выборке данных. Данный этап является самым трудоемким, поскольку необходимо организовать запросы на выборку по следующим критериям:

- Тип таблиц – MyISAM, InnoDB

- Сложность – по первичному ключу из одной таблицы, и с использованием JOIN.

- Количество записей – от 200 до 2.000.000.

- Выборка данных в режиме большой нагрузки – до 100 запросов в секунду.

Поскольку в MongoDB нет операции JOIN, то обеспечение непротиворечивости данных ложится на плечи разработчика, что представляет определенную трудность в реализации поставленной задачи.

Поскольку данные могут обновляться, то необходимо исследовать и запросы UPDATE. Критерии, по которым происходит обновление данных, соответствуют критериям первого этапа.

Результатом этого этапа будет предоставление наглядной информации о скорости работы БД на чтение\запись. Графики и диаграммы помогут визуально оценить преимущества той, или иной БД. В случае выявления неоспоримых преимуществ MongoDB по большинству параметров, можно рекомендовать данную базу для реализации подсистемы БД кластера NeClus.

Общий вид алгоритма полномасштабного тестирования представлен на рисунке 2.

Рисунок 2 – Алгоритм тестировании SQL и NoSQL баз данных

Перспективы дальнейших исследований: При дальнейшей реализации данного алгоритма можно сделать выводы о целесообразности использования тех или иных СУБД и, как следствие, дать рекомендацию по использованию существующей СУБД на кластере ДонНТУ NeClus или переход на альтернативную СУБД, которая повысит эффективность использования кластера и даст возможность более быстрого обмена данными.

Список литературы

1. MongoDB [Электронный ресурс]/Свободная энциклопедия — Электрон. дан. М.:[199?] — Режим доступа: http://ru.wikipedia.org/wiki/MongoDB, свободный. — Загл. с экрана. — Яз. рус., англ.

2. Реляционная СУБД [Электронный ресурс]/Свободная энциклопедия — Электрон. дан. М.:[199?] — Режим доступа: http://ru.wikipedia.org/wiki/РСУБД, свободный. — Загл. с экрана. — Яз. рус., англ.

3. Базы данных > Оценка производительности MongoDB и MySQL [Электронный ресурс]/Персональный сайт — Электрон. дан. [М?]:2008 — Режим доступа: http://sontan.name/blog/view/~benchmarking-of-mongodb-and-mysql, свободный. — Загл. с экрана. — Яз. рус., англ.

4. Mongo [Электронный ресурс]/ Официальный сайт — Электрон. дан. [USA?]: 2013 — Режим доступа: http://www.mongodb.org/, свободный. — Загл. с экрана. — Яз. рус., англ.