Для эффективной записи данных на диск этот компонент имеет интерфейс с операционной системой (ОС). Так как функции сохранения располагаются на отдельной подсистеме, механизм MySQL работает на уровне, абстрагированном от файловой системы ОС. Это значит, что при установке на разных ОС достаточно переписать только ту часть кода, которая касается сохранения. С помощью библиотек функций MySQL (см. раздел "Компоненты поддержки"), диспетчер сохранения записывает на диск все данные из таблиц пользователя, индексов и регистрационных журналов, а также внутренние системные данные.
Адаптация к рабочей среде
Путем разделения функций между процессором обработки запросов и другими компонентами, MySQL добавляет дескрипторы таблиц типа HEAP и MERGE (в дополнение к "родному" дескриптору MylSAM). Кроме того, для каждого дескриптора предусмотрен свой диспетчер транзакций и свой диспетчер сохранения. Так как в исходных типах InnoDB и BDB возможности транзакций не предусмотрены, они были модифицированы согласно существующему процессору запросов.
О типах таблиц, которые поддерживаются MySQL, можно узнать подробнее в главе 8, "Обработка баз данных и таблиц"
Кэш-память запросов
Если запрос возвращает набор записей, повторный запрос возвратит тот же самый набор записей, пока не изменятся данные, на основании которых запрос обрабатывается. Однако далеко не во всех из существующих основных реляционных СУБД предусмотрены возможности, в которых бы рационально использовались преимущества этого принципа. В других базах данных сохраняется оптимизированный план доступа, детализирующий процесс выборки данных, что позволяет подобным запросам пропускать этап анализа индексов, которые уже использовались для выборки данных.
Кэширование результирующего набора является шагом вперед по сравнению с сохранением результирующих наборов в памяти, минуя этап поиска в базе данных. Данные из запроса просто помещаются в кэш-памяти, а когда встречается аналогичный запрос, в ответ на него возвращаются эти уже однажды выбранные данные.
MySQL предельно эффективно использует в своей работе кэширование результирующих наборов. Этот механизм известен как кэш-память запросов, динамически сокращающий время ответа на запросы, которые вызываются для выборки абсолютно тех же данных, что были обработаны во время предыдущего запроса.
Этот механизм является настолько эффективным, что основные компьютерные издания уже объявили, что запросы MySQL работают быстрее, чем аналогичные запросы в СУБД Oracle и СУБД SQL Server (которые отличаются огромной скоростью работы). При правильной реализации системы принятия решений, использующей MySQL с отчетами или Web-страницами, выбирающими данные из баз данных, становится вполне реальным обеспечение скорости реакции значительно более высокой, чем скорость, на которую можно рассчитывать без использования кэш-памяти запросов.
Диспетчер буферизации
Эта система предназначена для управления памятью в промежутках времени между запросами данных процессором обработки запросов и диспетчером сохранения. MySQL использует агрессивное использование памяти для кэширования результирующих наборов, которые могут возвращаться в исходном состоянии, не задействуя при этом диспетчер сохранения. Работу такой кэш-памяти обеспечивает диспетчер буферизации.
В этой области также могут храниться новые записи до того, пока не освободятся нужные таблицы и индексы. При необходимости большого количества данных, они запрашиваются из диспетчера сохранения и размещаются в буфере перед их отправкой в процессор обработки запросов.
Диспетчер транзакций
Диспетчер транзакций предназначен для обеспечения параллельности при доступе к данным. Эта подсистема реализует механизм блокировки, обеспечивающий одновременный доступ к данным, не допуская при этом нарушения целостности и разрушения данных. Управление транзакциями осуществляется через субкомпонент диспетчера блокировки, блокирующий и снимающий блокировку с различных объектов, используемых при транзакциях. Каждая программа обработки таблиц транзакций работает со своим собственным менеджером транзакций для обработки всех блокировок и обеспечения параллельности работы.
Диспетчер восстановления
Задача, стоящая перед диспетчером восстановления, заключается в сохранении копий данных для последующего использования их в случае потери данных. Кроме того, она протоколирует команды изменения данных и другие события, происходящие в базе данных.
До настоящего времени только дескрипторы таблиц типа InnoDB и BDB имели возможность восстановления. Так таблицы типа MyISAM не обеспечены процедурами восстановления транзакций, но в них предусмотрен механизм восстановления на случай сбоя в работе сервера. Эти возможности позволяют устранить любое отсутствие целостности, которая может возникнуть в случае сбоя работы системы. Обычно это относится к индексам, которые не были правильно модифицированы и не соответствуют содержимому таблиц или записей, которые были записаны не полностью в базу данных.
ТОП-10 популярных
Для работы с вещественными числами в MySQL предусмотрено три типа данных - это типы FLOAT, DOUBLE, DECIMAL. Числовой тип FLOAT...
БОЛЬШЕ БОЛЬШИХ LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Больше больших LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
НОУТБУК с блестящим экраном
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...
Иди и пиши. TravelMate C100
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...
Магнито-оптический дисковод DynaMO
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...
Компьютер для гурманов.«Эксимер ДМ»
Российская компания «Эксимер ДМ», известная как производитель настольных компьютеров, рабочих станций, серверов и ноутбуков, выступила техническим спонсором проведения торжеств, посвященных...
Российская компания «Эксимер ДМ», известная как производитель настольных компьютеров, рабочих станций, серверов и ноутбуков, выступила техническим спонсором проведения торжеств, посвященных...
Для длинных строк, т.е. строк длиннее 255 символов, в MySQL предусмотрены типы BLOB (Binary Large Object, большой двоичный объект) и...
В дополнение к календарным типам, предназначенным для хранения даты и времени отдельно, MySQL также поддерживает гибридные типы данных DATETIME и...
Вообще, к изменению настроек сервера прибегают очень редко. В MySQL программа заранее настроена так, чтобы соответствовать самым распространенным и основным...
Все о MySQL. Диспетчер сохранения
28-12-2009
<< Предыдущая статья | Следующая статья >> |
Все о MySQL. Техническое описание MySQL | Все о MySQL. Компоненты поддержки |