Spec-Zone.ru › MySQL 5.7

15.7.1 Преимущества и недостатки таблиц MERGE

Таблицы MERGE могут помочь решить следующие проблемы:

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

  • Получить более высокую скорость. Вы можете разделить большую таблицу только для чтения на основе определенных критериев и затем разместить отдельные таблицы на разных дисках. Таблица MERGE, структурированная таким образом, может быть намного быстрее, чем использование одной большой таблицы.

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

  • Выполнять более эффективные исправления. Легче исправить отдельные меньшие таблицы, которые отображаются в таблице MERGE, чем исправить одну большую таблицу.

  • Мгновенно объединить много таблиц в одну. Таблица MERGE не должна поддерживать собственный индекс, поскольку использует индексы отдельных таблиц. В результате коллекции таблиц MERGE очень быстро создаются или перестраиваются. (Вы все равно должны указать определения индекса при создании таблицы MERGE, даже если индексы не создаются.)

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

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

  • Вы можете создать псевдоним или синоним для таблицы MERGE, определив таблицу MERGE, которая отображается на эту единственную таблицу. Должно быть нет заметного влияния на производительность (только несколько косвенных вызовов и вызовов MERGE для каждого чтения).

Недостатками таблиц MERGE являются:

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

  • Некоторые функции MERGE недоступны в таблицах MERGE. Например, вы не можете создать полные текстовые индексы для таблиц MERGE. (Вы можете создать полные текстовые индексы для базовых таблиц, но не можете искать в таблице MERGE с помощью полнотекстового поиска.)

  • Если таблица MERGE является невременной, все базовые таблицы должны быть невременными. Если таблица MERGE временная, базовые таблицы могут быть любым сочетанием временных и невременных.

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

  • Чтение индексов происходит медленнее. При чтении индекса хранилище MERGE должно выполнить чтение всех базовых таблиц, чтобы проверить, какая из них наиболее точно соответствует заданному значению индекса. Чтобы прочитать следующее значение индекса, хранилище MERGE должно выполнить поиск в буферах чтения, чтобы найти следующее значение. Только когда один буфер индекса исчерпан, хранилище нуждается в чтении следующего блока индекса. Это делает индексы MERGE намного медленнее при поиске с типом соединения eq_ref, но ненамного медленнее при поиске с типом соединения ref. Для получения дополнительной информации о типах соединения eq_ref и ref см. Раздел 13.8.2, «Запрос EXPLAIN».

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-5.7-en/merge-table-advantages.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API