MySQL: руководство профессионала
Шрифт:
Два других файла содержат дисковую копию последовательного файла регистрации Falcon. Они также созданы внутри области соответствующей базы данных. В будущем выпуске Вы сможете определить альтернативное расположение для этих журналов. Так с вышеупомянутым файлом данных примера test.fts журналы будет именованы test.fl1 и test.fl2.
Определения таблицы, как с другими типами памяти MySQL, сохранены в файл .frm в каталоге базы данных. Например, таблица falcontest в базе данных test создаст файл определения (описания) таблицы falcontest.frm в каталоге test.
При создании
2.4.4. Создание таблиц и индексов в Falcon
Falcon поддерживает все стандартные типы данных столбцов, обеспечиваемые MySQL.
Чтобы создать таблицу, которая использует Falcon, примените опцию ENGINE = Falcon в инструкции CREATE TABLE:
CREATE TABLE names (id INT, fname VARCHAR (20),
lname VARCHAR (20)) ENGINE=Falcon
Индексы могут быть созданы, используя все стандартные методы, например, Вы можете явно определять индекс на столбце:
CREATE TABLE ids (id int, index (id)) ENGINE=Falcon
Генерируйте один как часть первичного ключа:
CREATE TABLE ids (id int),PRIMARY KEY (id) ENGINE=Falcon
Или Вы можете создавать много ключей и многократные индексы:
CREATE TABLE t1 (id int NOT NULL, id2 int NOT NULL, id3 int NOT NULL,
name CHAR(30), primary key (id, id2),
index index_id3 (id3)) ENGINE=Falcon
2.4.5. Принципы и терминология
Вы должны понять следующие базисные принципы и терминологию.
MySQL Falcon объединяет продвинутые методы с упрощенной структурой, которая приводит к высокоэффективной транзакционной базе данных, которая требует небольшого сопровождения или поиска неисправностей администратором базы данных.
Файл данных пользователя сохраняет данные Falcon.
Последовательный файл регистрации Falcon содержит недавно совершенные изменения данных, индексные изменения и транзакционную информацию. Также обеспечивает средства восстановления данных.
Кэш страницы хранит страницы базы данных.
Кэш записи хранит копии активных и нейтральных записей.
Память системы хранит информацию контекста транзакции, индексные акселераторы и метаданные системы.
Рабочие потоки являются фоновыми потоками. Имеются два потока: поток "gopher" перемещает данные из последовательный файла регистрации Falcon в кэш страницы базы данных и из кэша страниц на диск. Второй поток программы записи страницы, который пишет страницы с blob.
2.4.5.1. Файл и структуры данных Falcon
Одиночные файлы базы данных Falcon хранят все данные записи, индексы, структуру базы данных и другую информацию. Индивидуальная информация сохранена в ряде страниц.
Страницы
Страницы, кэшируемые в памяти используются, чтобы сохранить индексы, blob'ы и структурные данные для конкретного пространства таблиц. Активные записи сохранены внутри отдельного кэша записей.
Все транзакции в базе данных регистрируются и сохранены внутри отдельного журнала. Журнал автоматически сбрасывается и изменения записываются на диск, когда имеется команда COMMIT, когда включен auto-commit или автоматически через каждые 30 секунд, когда транзакции не используются.
2.4.5.2. Последовательный файл регистрации Falcon
Falcon использует последовательный файл регистрации, чтобы сохранить некоторые типы информации до того, как данные окончательно сохранятся в базе данных. Файл регистрации используется, чтобы сохранить следующие типы информации:
Записи данных в течение совершающейся фазы.
Физические изменения базы данных, требуемые для восстановления данных после аварийного отказа.
Логические изменения базы данных, требуемые для восстановления ресурса после аварийного отказа.
Изменения статуса для всех активных транзакций.
Все транзакции в Falcon записаны в последовательный файл регистрации Falcon, а затем переданы к базе данных автоматически, если включен AUTOCOMMIT, или вручную, когда используется команда COMMIT.
Регистрация информации сохранена в памяти, и несохранные изменения файла регистрации периодически сбрасываются на диск. Фоновый поток обрабатывает содержание файла регистрации, передавая) изменения файла регистрации в базу данных. Передающий процесс устанавливает конечное состояние всех записей и страниц, независимо от любых вмешивающихся состояний, только конечное состояние фактически записано на диск.
Обратите внимание, однако, что последовательный файл регистрации только модифицирует данные записи через кэш страницы в оперативной памяти. Фактические данные записи будут записаны на диск, когда происходит процесс контрольной точки. Исключительная ситуация к этому правилу: индексные и blob-записи, которые немедленно записаны на диск как часть процесса.
Falcon создает два последовательных журнала. Первый журнал используется, чтобы сохранить последовательные данные файла регистрации, пока файл регистрации не достигает определенного размера. Если только этот размер был достигнут, регистрация переключена на второй последовательный журнал. Процесс продолжает читать из первого журнала, пока все транзакции не будут записаны в базу данных. Первый журнал затем освобожден и вновь создан.