Ответ
MariaDB не проектировалась "с нуля" для конкретного проекта. Это система управления базами данных (СУБД) с открытым исходным кодом, которая является форком MySQL.
История и "архитекторы":
- Основной создатель: Майкл Видениус (известный как Monty), один из оригинальных авторов MySQL. Он инициировал форк в 2009 году после приобретения MySQL компанией Oracle.
- Развитие: Сейчас MariaDB развивается сообществом и фондом MariaDB Foundation, в который входят многие бывшие ключевые разработчики MySQL.
С точки зрения разработчика: Когда мы говорим "проектирование БД" в контексте MariaDB, мы имеем в виду проектирование схемы данных для нашего приложения.
Пример: как я проектирую таблицу в MariaDB для задачи хранения пользовательских сессий:
CREATE TABLE user_sessions (
id CHAR(36) PRIMARY KEY DEFAULT (UUID()), -- Используем UUID
user_id INT UNSIGNED NOT NULL,
access_token VARCHAR(500) NOT NULL,
refresh_token VARCHAR(500) NOT NULL,
expires_at TIMESTAMP NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
INDEX idx_user_id (user_id), -- Индекс для поиска по user_id
INDEX idx_expires_at (expires_at) -- Индекс для очистки просроченных сессий
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
Обоснование выбора:
InnoDB— движок по умолчанию в MariaDB, поддерживает транзакции и внешние ключи.utf8mb4— для полной поддержки эмодзи и всех символов Unicode.- Индексы на
user_idиexpires_atоптимизируют частые запросы приложения.
Таким образом, проектировщиком конкретной схемы БД в MariaDB является разработчик/архитектор проекта.
Ответ 18+ 🔞
Слушай, а вот этот вопрос про MariaDB — он же классический, как будто на дворе 2002-й год. Люди думают, что это какая-то новая штука, которую с нуля для их стартапа на коленке склепали. Нет, блядь, это же просто система управления базами данных с открытым исходным кодом, которая вылупилась из MySQL, как цыплёнок из яйца, только с более независимым характером.
Кто её, блядь, делал и почему она вообще появилась:
- Главный заводила: Майкл Видениус (в народе Monty), один из тех, кто MySQL из грязи в князи вывел. А потом Oracle пришла и купила MySQL. И Monty, видимо, подумал что-то вроде: «Ёпта, нет, так дело не пойдёт, тут доверия ебать ноль». Вот он и сделал форк — взял и отпочковался со своим кодом. Это и есть MariaDB.
- Сейчас этим заправляет целое сообщество и фонд MariaDB Foundation, куда набились куча старых зубров от MySQL. Так что архитекторы — это не какие-то мифические существа, а вполне конкретные чуваки, которые знают, где у этой собаки хвост.
А теперь самое важное, чувак. Когда какой-нибудь менеджер кричит: «Спроектируй нам базу на MariaDB!» — он имеет в виду не саму СУБД, а схему данных для нашего конкретного приложения. Вот это и есть наша работа. Мы — те самые проектировщики, которые решают, как таблицы будут выглядеть и как они друг с другом трахаться.
Вот, смотри, как я, например, могу накидать таблицу для хранения пользовательских сессий. Просто чтобы ты понял масштаб творчества:
CREATE TABLE user_sessions (
id CHAR(36) PRIMARY KEY DEFAULT (UUID()), -- Генерим UUID, чтобы не было скучно
user_id INT UNSIGNED NOT NULL,
access_token VARCHAR(500) NOT NULL,
refresh_token VARCHAR(500) NOT NULL,
expires_at TIMESTAMP NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
INDEX idx_user_id (user_id), -- Индекс, чтобы не жрать процессор почём зря при поиске
INDEX idx_expires_at (expires_at) -- Индекс для будущей уборки мусора (просроченных сессий)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
А теперь обоснуй, блядь, свой выбор, как на защите диплома:
InnoDB— это движок по умолчанию в MariaDB. Он не подведёт: транзакции поддерживает, внешние ключи — всё чинно, благородно.utf8mb4— это чтобы твои пользователи могли слать друг другу эмодзи и не париться, что какой-нибудь иероглиф превратится в кракозябру. Поддержка Unicode полная, ебать мои старые костыли.- Индексы на
user_idиexpires_at— это не прихоть, а необходимость. Без них твои запросы будут ползти, как улитки, особенно когда данных станет овердохуища. А мы ведь не хотим, чтобы всё накрылось медным тазом при первой же нагрузке?
Короче, резюмирую: MariaDB — это инструмент. А проектировщик схемы в ней — это ты, чувак, со своей головой и пониманием, как должно работать приложение. Всё остальное — уже технические детали.