Инициативная группа MySQL AB Maria, состоящая из шести человек и возглавляемая Michael «Monty» Widenius (создатель MySQL и MyISAM), выпустила тестовую версию нового движка хранения данных Maria.
Движок Maria — это расширенная версия MyISAM, которая поддерживает весь основной функционал MyISAM и в дополнение к этому предлагает: поддержку восстановления данных после сбоев (data auto-recovery, crash safe), полное логирование (включая операции CREATE, DROP, RENAME и TRUNCATE) и новый формат строк PAGE.
Планируется, что движок Maria будет входить в стандартный пакет в версиях MySQL 6.X
Основные замечания касательно сравнения Maria и MyISAM
Преимущества перед MyISAM
Отличия от MyISAM
Устранение недостатков на ближайшее время
Устранение недостатков в следующих релизах
Различия, которые вероятно не будут устранены
Via: handynotes.ru
Движок Maria — это расширенная версия MyISAM, которая поддерживает весь основной функционал MyISAM и в дополнение к этому предлагает: поддержку восстановления данных после сбоев (data auto-recovery, crash safe), полное логирование (включая операции CREATE, DROP, RENAME и TRUNCATE) и новый формат строк PAGE.
Планируется, что движок Maria будет входить в стандартный пакет в версиях MySQL 6.X
Основные замечания касательно сравнения Maria и MyISAM
Преимущества перед MyISAM
- Восстановление данных и индексов после сбоев
- Откат, после сбоя, в предыдущее состояние или к состоянию после последней команды LOCK TABLES
- Полное логирование операций, включая: CREATE/DROP/RENAME/TRUNCATE TABLES, LOAD DATA INFILE, SELECT… INSERT и INSERT (множество строк), ALTER TABLE
- LOAD INDEX может пропускать неиспользуемые индексные блоки
- Новый блочный формат строк, в котором данные хранятся ввиде страниц
- При использовании блочного формата строк (выбираемого теперь по умолчанию) строковые данные могут кешироваться
- Блочные тесты большинства элементов
- Поддержка как отказоустойчивых (crash safe, транзакциональных) так и нетранзакциональных таблиц. (Нетранзакцональные таблицы не логируются и для строк используется меньше места): CREATE TABLE foo (...) TRANSACTIONAL=0|1
- PAGE используется только для отказоустойчивого/транзакционального строкового формата
- PAGE формат должен дать заметное увеличение скорости на системах с плохим кешированием данных. (К примеру Windows)
Отличия от MyISAM
- Использование больших (1GB по умолчанию) лог файлов
- Использование контроля за логами (maria_log_control) и файлов логов (maria_log.???????). Файлы логов могут быть очищены автоматически, когда они уже больше не нужны, или по требованию (после бакапирования).
- По умолчанию используются 8К страницы (MyISAM использует 1К). Maria будет работать быстрее на индексах с фиксированным размером, но медленнее на ключах с переменной длиной.
Устранение недостатков на ближайшее время
- В Maria 1.0 может быть один пишущий и много читающих (MyISAM может иметь одного добавляющего и много читающих, когда используются конкурирующие добавления записей).
- Не поддерживается INSERT DELAYED
- Не поддерживается кеширование составных ключей
Устранение недостатков в следующих релизах
- Хранение очень малых строк
- Не поддерживаются MERGE таблицы
Различия, которые вероятно не будут устранены
- Страницы данных в блоковом формате увеличивают размеры: 10 байт на страницу и 5 байт на строки. Транзакции и поддержка конкурирующих записей приведут к увеличению: 7 байт на новые строки, 14 байт для удаленных строк
- Отсутствие внешнего блокирования (MyISAM имеет внешнее блокирование, но оно редко используется)
- Использование одинакового размера страниц для индекса и данных. MyISAM поддерживает различные размеры страниц для индексов
- Индексный номер требует один экстра байт на индексную страницу
- Не поддерживается внутренний MySQL RAID (выключен и в MyISAM)
- Минимальный размер файла данных формата PAGE 16К (со страницей на 8K)
Via: handynotes.ru