Система управления реляционными базами данных MariaDB
MariaDB — ответвление реляционной СУБД MySQL, разрабатываемое сообществом под лицензией GPL. MariaDB совместима с большинством приложений, использующих MySQL, а переход на эту СУБД оправдан тем, что MySQL уже не так активно развивается.
Кроме понятной политики распространения продукта, данная СУБД отличается от MySQL более высокой производительностью, новыми возможностями и меньшим количеством ошибок в коде (в частности, за счёт лучшего покрытия тестами и более активного развития).
В MariaDB встроены улучшенный оптимизатор запросов, безопасная и быстрая репликация, более быстрые индексы для механизма хранения данных MEMORY (HEAP), более высокая производительность перекодировки символов, использование пула потоков, а также множество других улучшений производительности.
В ранних версиях MariaDB (5.5) механизм хранения данных InnoDB поставлялся в виде его ответвления XtraDB; с версии 10.0 MariaDB работает на InnoDB. Помимо MyISAM, Blackhole, CSV, MEMORY и Archive включены подсистемы хранения Aria, PBXT (до версии 5.5), FederatedX, OQGRAPH, SphinxSE, IBMDB2I (до версии 5.5), TokuDB, а также с версии 10.0 — Cassandra, CONNECT, SEQUENCE, Spider.
Ведущий разработчик — Майкл Видениус, автор оригинальной версии MySQL. Толчком к созданию стала необходимость обеспечения свободного статуса СУБД (под лицензией GPL), в противовес неопределенной политике компании Oracle в лицензировании MySQL.
MariaDB и MySQL занимают первое место по использованию в веб‑разработке, PostgreSQL и SQLite используются несколько реже. А другие СУБД в веб‑проектах используются совсем редко.
Тематические статьи
PostgreSQL — это популярная объектно-реляционная система управления базами данных. PostgreSQL базируется на языке SQL, отличается высокой надёжностью и имеет широкие возможности. В PostgreSQL нет ограничений на максимальный размер базы данных, количество записей и индексов в таблицах. В СУБД встроены мощные и надёжные механизмы транзакций, есть возможности для репликации, шардинга и партиционирования. СУБД отличает лёгкая расширяемость и возможность тонкой настройки.
MySQL — это реляционная система управления базами данных с открытым исходным кодом. В настоящее время эта СУБД одна из наиболее популярных в веб‑приложениях — подавляющее большинство CMS использует именно MySQL (часто только её, без альтернатив), а почти все веб‑фреймворки поддерживают MySQL уже на уровне базовой конфигурации (без дополнительных модулей).
SQL‑инъекции — это один из распространённых способов взлома сайтов и веб‑приложений, работающих с реляционными базами данных. SQL‑инъекции основаны на внедрении в выполняемый приложением запрос к базе данных произвольного SQL‑кода, переданного злоумышленником. Последствиями SQL‑инъекций могут стать кража, модификация или удаление данных, а также полный взлом атакуемой системы — например, получение привилегированного доступа.
Memcached — это хранилище «ключ => значение», использование которого очень эффективно для ускорения работы сайта или веб‑приложения.
Redis — сетевое журналируемое хранилище данных типа «ключ — значение», которое обрабатывает данные в оперативной памяти и обладает механизмами снимков и журналирования для обеспечения постоянного хранения. Хранилище поддерживает строки, списки, хеши, обычные и сортируемые множества, потоки (streams) и другие типы данных.
Базы данных служат для хранения и обработки данных. Бывают реляционные (SQL) и нереляционные (NoSQL) системы управления базами данных. Реляционные системы управления базами данных (SQL) хранят данные в таблицах и наиболее часто используются в качестве основного хранилища для веб‑приложений. Они очень стабильны, и их надёжность проверена временем. Нереляционные СУБД (NoSQL) заметно отличаются по структуре хранения данных и работе с ними. Для специфических типов данных и задач они зачастую быстрее и удобнее классических SQL СУБД, но обычно это преимущество достигается за счёт снижения надёжности хранения.
СУБД очень часто становится «узким местом» в производительности веб‑приложений. В момент, когда сервер баз данных не может справиться с нагрузками, производится масштабирование. В современных высоконагруженных системах эффективное управление данными невозможно без использования методов масштабирования и обеспечения отказоустойчивости. Репликация, партиционирование и шардирование — ключевые подходы, которые позволяют распределять данные, повышать производительность и гарантировать доступность. Разберём каждый из них подробно.
MongoDB — это NoSQL‑хранилище данных, крайне удобное для хранения информации, которая не может быть нормально структурирована в рамках реляционных баз данных. MongoDB — это СУБД с открытым исходным кодом по лицензии SSPL, не требующая описания схемы таблиц. Документы в MongoDB хранятся в JSON или BSON, с такой моделью проще кодировать и управлять, а внутренняя группировка релевантных данных обеспечивает дополнительный выигрыш в быстродействии.
На серверах для размещения сайтов и веб‑приложений устанавливается программное обеспечение, которое требуется для работы программной логики сайта и других служб домена, для обслуживания и мониторинга, а также для защиты от взлома и устойчивости к нагрузкам.