MySQL: MyISAM хотят заменить на новый движок Maria
Инициативная группа 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
Восстановление данных и индексов после сбоев
Откат, после сбоя, в предыдущее состояние или к состоянию после
последней команды 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)
Многие наверное как и я в свое время задавались интересным вопросом – “А вот как бы задействовать всю силу применяемой в моем проекте СУБД? Не только стандартные SQL запросы, а и скрытые возможности.” Тогда ведь можно будет получать результат найэффективнешими методам... подробнее
Эта статья рассматривает некоторые особенности средства label security в oracle. Здесь показана возможность секретить служебный столбец с метками доступа к строкам, а также рассмотрены некоторые правила правки меток. В первую очередь статья затрагивает использование параметра table_options процедуры apply_table_policy из пакета sa_policy_admin... подробнее
Небольшая заметка об использовании триггеров в СУБД MySQL. Несмотря на достаточно приличный возраст этой СУБД, поддержка триггеров появилась только в 5-й версии и достаточно мало описана на русском языке... подробнее
Мой любимый вопрос, задаваемый DBA, которые хотят увеличить производительность MySQL: “какие параметры надо настраивать в первую очередь, сразу после установки сервера?”... подробнее
Иногда у меня спрашивают о ошибках MySQL, (например таких), которые могут привести к обрушиванию mysql-сервера пользователем с обычными привелегиями. Потом звучит вопрос: “Что же делать в таких случаях? Как защититься от подобных ситуаций?”... подробнее