Spec-Zone.ru › MySQL 8.4

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Spec-Zone.ru

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