Справочное руководство по MySQL версии 4.1.1-alpha


7.2 Таблицы MERGE - часть 2


Более эффективный поиск. Если точно известно, что вы ищете, можно производить поиск по определенным запросам только в одной из составляющих таблицу MERGE таблиц, одновременно используя таблицу MERGE для других запросов. Можно даже иметь несколько активных таблиц MERGE (возможно, с перекрывающимися файлами).

  • Более простое восстановление. Гораздо легче восстановить отдельные файлы, которые преобразованы в файл MERGE, чем пытаться восстановить действительно большой файл.

  • Быстрая обработка большого количества файлов как одного. Для таблицы MERGE используются индексы отдельных таблиц; поддерживать для нее один большой индекс нет необходимости. Благодаря этому создание или изменение таблиц MERGE осуществляется ОЧЕНЬ быстро. Обратите внимание на то, что при создании таблицы MERGE необходимо указывать определения ключей!

  • Если требуется объединить несколько таблиц в одну большую таблицу по требованию или при формировании, лучше создать для них по требованию таблицу MERGE. Это намного быстрее и позволит сэкономить дисковое пространство.

  • Таблицы MERGE позволяют обходить ограничения на размер файлов в операционных системах.

  • Можно создать псевдоним/синоним для таблицы - для этого нужно просто применить MERGE к одной таблице. Заметного падения производительности при этом наблюдаться не будет (только пара непрямых вызовов и вызовы memcpy() при каждом чтении).

    Недостатки таблиц MERGE:

    • Для создания таблицы MERGE можно использовать только идентичные таблицы MyISAM.

    • Не работает команда REPLACE.

    • Для таблиц MERGE используется больше дескрипторов файлов. Если применяется таблица MERGE, преобразованная из более чем 10 таблиц, к которым получают доступ 10 пользователей, то используется 10*10 + 10 дескрипторов файлов (10 файлов данных для 10 пользователей и 10 общих индексных файлов).

    • Ключи считываются медленнее. При чтении ключа обработчику MERGE

      необходимо прочитать все базовые таблицы, чтобы выяснить, какая из них больше всего соответствует указанному ключу. Если после этого выполнить команду ``читать следующий'', то обработчик объединенной таблицы должен будет просмотреть буферы чтения, чтобы найти следующий ключ. Только по завершении использования одного буфера ключей обработчику понадобится прочитать следующий блок ключей. В связи с этим ключи MERGE дают большое замедление при поиске eq_ref, однако не такое значительное при поиске ref. See section 5.2.1 Синтаксис оператора EXPLAIN (получение информации о SELECT).




    • - Начало -  - Назад -  - Вперед -



      Книжный магазин