Сравнение транзакционных и не транзакционных таблиц 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Сравнение транзакционных и не транзакционных таблиц



 

Транзакционно‑безопасные таблицы (TST) имеют несколько преимуществ над не транзакционно‑безопасными таблицами (NTST):

 

Они более надежные. Даже если MySQL терпит крах, или Вы получаете аппаратные проблемы, Вы можете получить Ваши данные обратно автоматическим восстановлением или из копии плюс файл регистрации транзакции.

 

Вы можете объединять много инструкций и принимать их все в то же самое время инструкцией COMMIT (если autocommit выключен).

 

Вы можете выполнять ROLLBACK, чтобы игнорировать Ваши изменения (если autocommit выключен).

 

Если произошел сбой модификации, все Ваши изменения вернутся. С не транзакционно‑безопасными таблицами все изменения, которые имели место, постоянны.

 

Транзакционно‑безопасные типы памяти могут обеспечивать лучший параллелизм для таблиц, которые делают много модификаций одновременно с чтением.

Вы можете объединять транзакционно‑безопасные и не транзакционно‑безопасные таблицы в тех же самых инструкциях. Однако, хотя MySQL поддерживает несколько транзакционно‑безопасных типов памяти (хранения), для самых лучших результатов, Вы не должны смешивать различные типы внутри транзакции с заблокированным autocommit. Например, если Вы делаете это, изменения для не транзакционно‑безопасной таблицы все еще совершены немедленно и не могут быть прокручены обратно.

Не транзакционно‑безопасные таблицы также имеют несколько преимуществ, которые происходят из того, что не имеется никаких непроизводительных затрат на транзакции:

 

Намного быстрее.

 

Более низкие требования дискового пространства.

 

Меньшее количество памяти требуется, чтобы выполнить модификации.

 

Другие типы памяти

 

Другие типы памяти могут быть доступны от третьих лиц, которые использовали Custom Storage Engine interface.

Вы можете находить подробную информацию в списке типов памяти третьего лица на странице MySQL Forge Storage Engines http://forge.mysql.com/projects/search.php?t=tagk=storage%20engine.

Примечание. типы памяти от третьего лица не обеспечиваются MySQL. Для дальнейшей информации, документации, руководств по установке, ошибкам, сообщениям, любой справки или помощи по работе с этими типами памяти, пожалуйста, входите в контакт с разработчиком непосредственно.

На текущий момент есть следующие сторонние типы памяти:

 

PrimeBase XT (PBXT): PBXT был разработан для современного web‑основанного параллелизма.

 

RitmarkFS RitmarkFS позволяет Вам обращаться и управлять файловой системой, используя SQL‑запросы. RitmarkFS также поддерживает репликацию файловых систем и трэкинг изменений.

 

Distributed Data Engine: Open Source проект, который специализирован, чтобы обеспечить поддержку распределенных данных согласно статистике рабочей нагрузки.

 

mdbtools: съемный тип памяти, который позволяет доступ только для чтения к.mdb‑файлам базы данных Microsoft Access.

 

solidDB for MySQL разработан для задание‑критических реализаций, которые требуют транзакционные базы данных. solidDB многопоточный драйвер, который полностью поддерживает ACID со всеми ожидаемыми уровнями изоляции транзакции, блокировкой уровня строки и многоверсионным управлением параллелизма (MVCC) с не блокируемыми чтением и записью.

Для подробной информации относительно разработки типа памяти, который может использоваться со съемной архитектурой памяти обратитесь к Writing a Custom Storage Engine в MySQL Internals.

 

Установка типа памяти

 

Когда Вы создаете новую таблицу, Вы можете определять, который тип памяти использовать, добавляя опцию ENGINE к инструкции CREATE TABLE:CREATE TABLE t (i INT) ENGINE = INNODB;

 

Если Вы опускаете опцию ENGINE или TYPE, используется заданный по умолчанию памяти. Обычно это MyISAM, но Вы можете изменять это, используя опцию сервера ‑‑default‑storage‑engine или ‑‑default‑table‑type, либо устанавливая опцию default‑storage‑engine или default‑table‑type в файле конфигурации my.cnf.

Вы можете устанавливать заданный по умолчанию тип памяти, который нужно использовать в течение текущего сеанса, устанавливая переменную storage_engine:SET storage_engine=MYISAM;

 

Когда MySQL установлен на Windows, используя MySQL Configuration Wizard, InnoDB может быть выбран как значение по умолчанию вместо MyISAM.

Чтобы преобразовывать таблицу из одного типа памяти в другой, используйте инструкцию ALTER TABLE, которая указывает новый тип памяти:ALTER TABLE t ENGINE = MYISAM;

 

Если Вы пробуете использовать тип памяти, который не компилируется в сервер (или компилируется, но дезактивирован), MySQL взамен создает таблицу, использующую заданный по умолчанию тип памяти, обычно MyISAM. Это поведение удобно, когда Вы хотите копировать таблицы между серверами MySQL, которые поддерживают различные типы памяти.

Эта автоматическая замена заданного по умолчанию типа памяти для недоступных типов может путать новых пользователей MySQL. Предупреждение сгенерировано всякий раз, когда тип памяти автоматически изменен.

Для новых таблиц MySQL всегда создает.frm‑файл, чтобы сохранить определения столбцов и таблицу. Индекс таблицы и данные может быть сохранен в одном или большем количестве других файлов, в зависимости от типа памяти. Сервер создает.frm‑файл выше уровня типа памяти. Индивидуальные типы создают любые дополнительные файлы, требуемые для таблиц, с которыми они управляются. Если имя таблицы содержит специальные символы, имена для файлов таблицы содержат закодированные версии тех символов. База данных может содержать таблицы различных типов. То есть, не все таблицы должны быть созданы с тем же самым типом памяти.

 

Тип памяти Falcon

 

Тип памяти Falcon был разработан с современными требованиями базы данных в памяти, и особенно для использования в web‑сайтах большого объема или другой среде, которая требует высокой эффективности, при обеспечении транзакций и регистрации функциональных возможностей, требуемых в этой среде.

 

Предупреждение

Falcon в настоящее время Alpha‑релиз и не должен использоваться в промышленных средах. Falcon в настоящее время обеспечивается только внутри ветви MySQL 5.1 и не рассматривается готовым. Это обеспечивается только для целей оценки и тестирования. Обратите внимание, что MySQL 5.1 Falcon не может включать все ошибки или свойства, которые применяются к главному дереву 5.1.

Falcon в настоящее время доступен только для 32‑разрядной Windows и 32 или 64‑разрядной Linux. Дополнительные платформы будут добавлены после alpha‑версии.

 

Свойства Falcon

 

Falcon был разработан для систем, которые способны поддерживать большую память и многопоточные или мультиядерные среды CPU. Большинство 64‑битных систем представляют собой идеальные платформы для Falcon, где имеется большое доступное пространство памяти и 2, 4 или 8‑ядерные CPU. Это также может быть развернуто внутри стандартной 32‑разрядной среды.

Falcon поддерживает ряд главных особенностей, которые делают возможным его применение в среде с большими нагрузками:

 

Multi Version Concurrency Control (MVCC) дает возможность записям и таблицам модифицироваться без непроизводительных затрат, связанных с блокировками уровня строки. Реализация MVCC фактически устраняет потребность блокировать таблицы или строки в течение процесса модификации.

 

Гибкая блокировка, включая гибкие уровни блокировки и интеллектуальное обнаружение тупика хранит защищенные данные и транзакции, выполняя текущие операции в максиальном быстродействии.

 

Оптимизирован для современных CPU, чтобы поддерживать много потоков, позволяя много транзакций и быструю обработку каждой транзакции.

 

Transaction‑safe (полностью совместим с ACID) и способен обрабатывать многократные параллельные транзакции.

 

Последовательный файл регистрации обеспечивает высокую эффективность и возможности восстановления без того, чтобы жертвовать эффективностью.

 

Продвинутые индексы B‑Tree.

 

Сервер предписывает справочную целостность и всегда гарантирует проверку правильности данных.

 

Сжатие данных сохраняет информацию на диск в сжатом формате, сжимая и декомпрессируя данные на лету. Результат в меньших и более эффективных физических размерах данных.

 

Интеллектуальное дисковое управление автоматически управляет размером файла на диске, расширениями и восстановлением места.

 

Данные и индексное кэширование обеспечивают быстрый доступ к данным без требования загрузить индексные данные с диска.

 

Неявные точки сохранения гарантируют целостность данных в течение транзакций.

 

Параметры конфигурации

 

Параметры конфигурированы через стандартный файл my.cnf или my.ini. Параметры могут быть конфигурированы, определяя имя параметра и соответствующее значение через пробел. Значения Memory могут быть определены в байтах или числом, сопровождаемым kb, mb или gb.

 

falcon_min_record_memory (Record Cache Base) устанавливает минимальный объем памяти, который будет распределен для кэширования данных при записи. Когда кэш‑память убирает мусор, процесс остановится, пока использование кэша не достигнет этого значения. Значение по умолчанию: falcon_max_record_memory/2 (10 MB).

 

falcon_max_record_memory (Record Cache Top) устанавливает максимальный размер памяти, которая будет распределена для кэширования данных при записи. Значение по умолчанию 20 MB.

 

falcon_page_cache_size (Page Cache Size) устанавливает объем памяти, который будет распределен для кэширования страниц из файла пространства таблицы. Значение по умолчанию 4 MB.

Связь между кэшем записи и кэшем страницы управляется информацией, которая кэшируется каждой системой. Целые записи, которые находятся в активном использовании (читаемые или модифицируемые) сохранены внутри кэша записи, однако, данные BLOB сохранены только внутри кэша страницы.

Кэш страницы используется, чтобы сохранить метаданные базы данных, данные BLOB и индексы таблицы.

Параметры Falcon также могут быть установлены в командной строке mysqld через использование следующих параметров командной строки:

 

– ‑falcon‑max‑record‑memory=#

 

– ‑falcon‑min‑record‑memory=#

 

– ‑falcon‑page‑cache‑size=#

Вы можете также допускать и отключать тип памяти Falcon при запуске, обеспечивая эти параметры mysqld, если этот mysqld включает тип памяти Falcon:

 

– ‑falcon включает Falcon.

 

– ‑skip‑falcon выключает Falcon.

 



Поделиться:


Последнее изменение этой страницы: 2021-01-14; просмотров: 172; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.117.72.224 (0.017 с.)