Amazon RDS — MariaDB для разработчиков .NET

MariaDB — это разработанный сообществом, коммерчески поддерживаемый форк MySQL, который предназначен для того, чтобы оставаться свободным и открытым программным обеспечением под GNU General Public License (та же самая лицензия, под которой была создана MySQL). Как только что упоминалось, форк был создан из-за приобретения MySQL компанией Oracle, где многие из первоначальных разработчиков MySQL боялись, что из-за того, как MySQL конкурирует с базой данных Oracle, прогресс в MySQL будет замедлен или остановлен. API и протокол MariaDB совместимы с теми, что используются в MySQL, плюс некоторые функции для поддержки встроенных неблокирующих операций и отчетов о ходе выполнения.
операций и отчетов о ходе выполнения. Это означает, что все коннекторы, библиотеки и приложения, работающие с MySQL, должны работать и на MariaDB. Однако, для последних функций MySQL, MariaDB либо пока не имеет эквивалента, например, географии, либо намеренно выбрала не 100% совместимость. Этот список несовместимостей, вероятно, будет продолжать расти с каждой версией.

MariaDB и .NET

Использование .NET с MariaDB легко настроить из-за того, что API для MariaDB и MySQL очень похожи. Честно говоря, они настолько идентичны, что самый простой способ использовать MariaDB в приложении .NET — это использовать тот же пакет MySQL NuGet и подход к подключению, который мы рассмотрели в разделе MySQL. Команда MariaDB не тратит время на создание коннекторов, а вместо этого работает над тем, чтобы обеспечить совместимость имеющихся коннекторов, например, созданных командой MySQL.

Настройка базы данных MariaDB на Amazon RDS

Теперь, когда мы знаем, как настроить наше .NET приложение для доступа к MariaDB, давайте посмотрим, как настроить MariaDB в Amazon RDS. Войдите в консоль, перейдите к RDS, выберите Создать базу данных. На экране «Создание базы данных» выберите Стандартное создание, а затем MariaDB. У вас появится список версий, начиная с версии 10.2 на момент написания этой статьи и заканчивая самой последней версией.

Остальная часть экрана настройки, как это ни удивительно, будет выглядеть до жути знакомой, если вы только что прошли через шаги настройки MySQL; в основном потому, что они идентичны! У вас будет те же три варианта шаблона, который вы хотите использовать (Production, Dev/Test и Free tier), а также все последующие разделы конфигурации.

Поскольку мы выбрали бесплатный уровень для MySQL, давайте немного смешаем их и перейдем к версии Dev/Test для MariaDB, и мы сможем поговорить о некоторых областях, которые мы пропустили при создании базы данных MySQL.

Первая из них, после того как вы создали идентификатор экземпляра базы данных и предоставили информацию о главном пользователе, называется DB instance class. Для экземпляров доступны три варианта:

  • Стандартные классы (включает классы m) — обеспечивают баланс вычислительных ресурсов, памяти и сетевых ресурсов и являются лучшим универсальным выбором для различных рабочих нагрузок баз данных.
  • Классы с оптимизацией памяти (включают классы r и x) — имеют большие объемы памяти для поддержки тех рабочих нагрузок базы данных, которые обрабатывают большие наборы данных в памяти.
  • Burstable classes (включает классы t) — это единственный вариант, доступный для бесплатного уровня, который разработан для обеспечения базовой производительности процессора с возможностью повышения производительности выше базового уровня по мере необходимости.

При выборе одного из этих вариантов изменяются экземпляры, доступные в раскрывающемся списке экземпляров, из которого вы делаете выбор. Выбор стандартных классов, как показано на рисунке 1, приведет к появлению выпадающего списка экземпляров m-класса.


Рисунок 1. Выбор класса экземпляра БД для MariaDB (и MySQL)

Выбор одного из других вариантов отфильтрует список в выпадающем списке до соответствующих классов.

Внимание: Самый низкий класс экземпляров m, db.m5.large, с 2vCPU, 8 ГБ ОЗУ и сетевым подключением 4 750 Мбит/с обойдется вам в $124,83 в месяц в US East 2, так что даже кратковременное создание может обойтись вам дорого! Классы экземпляров t — это те, которые включают бесплатные версии.

Следующий раздел настройки — это раздел хранения данных, с теми же опциями, что и при прохождении шагов MySQL, хотя значения по умолчанию могут отличаться в зависимости от выбранного класса экземпляра. После раздела хранилища находится вторая «серая» область, которую мы видели при настройке MySQL, Availability & durability.

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


Рисунок 2. Примерные ежемесячные расходы при включенном резервном копировании

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

Учитывая одинаковые цены на MySQL и MariaDB, а также схожие API и другие взаимодействия, вам может быть интересно, в чем же заключаются различия между ними.

Выбор между MySQL и MariaDB

Наша рекомендация, когда вы пытаетесь выбрать между MySQL и MariaDB? При прочих равных условиях выбирайте MariaDB. Почему? В первую очередь из-за расширенных возможностей, которые предлагает MariaDB, таких как оптимизация производительности и способность работать с большими наборами данных. MariaDB также потратила много усилий на оптимизацию запросов, использующих соединения, подзапросы или производные таблицы; таким образом, ее общая производительность выше, чем у MySQL. Наконец, MariaDB обеспечивает лучший мониторинг благодаря введению микросекундной точности и расширенной пользовательской статистики.

Однако бывают случаи, когда MySQL имеет больше смысла, чем MariaDB, как правило, когда вы используете некоторые функции, доступные в MySQL, которые недоступны в MariaDB, такие как географическая обработка, JSON, хранящийся как двоичные объекты, а не как текст, или функции аутентификации MySQL, такие как возможность аутентификации в базе данных через роли или возможность для пользователя активировать несколько ролей одновременно.

Главное, что оба варианта доступны, и оба обеспечивают поддержку разработки под .NET. Однако не обязательно ограничивать свой выбор только MariaDB или MySQL, поскольку существует еще одна база данных с открытым исходным кодом, поддерживаемая в Amazon RDS, которая заслуживает внимания. И это будет следующий пост!

Оцените статью
Procodings.ru
Добавить комментарий