Кто проектировал базу данных MariaDB?

Ответ

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 — это инструмент. А проектировщик схемы в ней — это ты, чувак, со своей головой и пониманием, как должно работать приложение. Всё остальное — уже технические детали.