Spec-Zone.ru › MySQL Workbench

7.4 Планировщик визуального объяснения

Функция визуального объяснения генерирует и отображает визуальное представление оператора MySQL, используя расширенную информацию, доступную в расширенном формате JSON. MySQL Workbench предоставляет все форматы EXPLAIN для выполненных запросов, включая исходный расширенный JSON, традиционный формат и визуальный план запроса.

Использование визуального объяснения

Чтобы просмотреть визуальный план выполнения запроса, выполните запрос из редактора SQL, а затем выберите План выполнения во вкладке результатов запроса. План выполнения по умолчанию устанавливается на Visual Explain, но также включает представление Tabular Explain, аналогичное тому, что вы видите при выполнении в MySQL-клиенте. Сведения о том, как MySQL выполняет операторы, см. в .

Конвенции визуального объяснения

Порядок выполнения в диаграмме визуального объяснения — снизу вверх и слева направо. Приведенные ниже примеры диаграмм предоставляют обзор графических, текстовых и информационных конвенций, используемых для представления аспектов планов визуального объяснения. Для получения подробной информации см.:

  • Графические конвенции

  • Текстовые и информационные конвенции

На первой фигуре визуальная диаграмма объяснения показывает визуальное представление следующего запроса.

SELECT CONCAT(customer.last_name, ', ', customer.first_name) 
  AS customer, address.phone, film.title FROM rental
INNER JOIN customer ON rental.customer_id = customer.customer_id
INNER JOIN address ON customer.address_id = address.address_id
INNER JOIN inventory ON rental.inventory_id = inventory.inventory_id
INNER JOIN film ON inventory.film_id = film.film_id
WHERE rental.return_date IS NULL
AND rental_date + INTERVAL film.rental_duration DAY < CURRENT_DATE()
LIMIT 5;

Рисунок 7.7 Пример визуального объяснения

Content is described in the surrounding text.

Следующая визуальная диаграмма объяснения показывает визуальное представление запроса, содержащего соединение с хешированием. До MySQL Workbench 8.0.22 соединение с хешированием представлялось block nested loop ромбом для запросов, выполняемых MySQL 8.0.19 (или более ранними версиями).

SELECT first_name, last_name
FROM actor
FULL JOIN film_actor
WHERE '' = film_actor.actor_id;       

Рисунок 7.8 Пример визуального объяснения с соединением с хешированием

Content is described in the surrounding text.

Графические конвенции

  • Стандартные прямоугольники: таблицы

  • Округлённые прямоугольники: операции, такие как GROUP и SORT

  • Прямоугольники с рамкой: подзапросы

  • Ромбы: соединения

Текстовые и информационные конвенции

  • Стандартный текст под прямоугольниками: имя таблицы (или псевдонима)

  • Жирный текст под прямоугольниками: ключ/индекс, который использовался

  • Число в правом верхнем углу прямоугольника: количество строк, используемых из таблицы после фильтрации

  • Число в левом верхнем углу прямоугольника: относительная стоимость доступа к этой таблице (требуется MySQL 5.7 или выше)

  • Число справа от ромбов (вложенных циклов или соединения с хешированием): количество строк, полученных в результате JOIN

  • Число над ромбами: относительная стоимость JOIN (требуется MySQL 5.7 или выше)

В следующей таблице показаны связанные цвета и описания, используемые в диаграмме визуального объяснения. Более подробную информацию об оценках стоимости см. в .

Таблица 7.1 Информация о диаграмме визуального объяснения

Таблица 7.1 Информация о диаграмме визуального объяснения
Имя системы Цвет Текст на визуальной диаграмме Информация, связанная с всплывающей подсказкой
SYSTEM Синий Одна строка: системная константа Очень низкая стоимость
CONST Синий Одна строка: константа Очень низкая стоимость
EQ_REF Зелёный Поиск по уникальному ключу Низкая стоимость — оптимизатор смог найти индекс, который может использоваться для извлечения необходимых записей. Быстродействие высокое, так как поиск по индексу напрямую ведёт к странице со всеми данными строки
REF Зелёный Поиск по неуникальному ключу Низко-средняя — низкая, если количество совпадающих строк мало; выше, по мере увеличения количества строк
FULLTEXT Жёлтый Поиск по полнотекстовому индексу Специализированный поиск FULLTEXT. Низкая — для этого специализированного требования поиска
REF_OR_NULL Зелёный Поиск по ключу + извлечение значений NULL Низко-средняя — если количество совпадающих строк мало; выше, по мере увеличения количества строк
INDEX_MERGE Зелёный Объединение индексов Средняя — поиск лучшего выбора индекса в запросе для повышения производительности
UNIQUE_SUBQUERY Оранжевый Поиск по уникальному ключу в таблице подзапроса Низкая — используется для эффективной обработки подзапросов
INDEX_SUBQUERY Оранжевый Поиск по неуникальному ключу в таблице подзапроса Низкая — используется для эффективной обработки подзапросов
RANGE Оранжевый Диапазонное сканирование индекса Средняя — частичное сканирование индекса
INDEX Красный Полное сканирование индекса Высокая — особенно для больших индексов
ALL Красный Полное сканирование таблицы Очень высокая — очень дорогостоящее для больших таблиц, но оказывает меньшее влияние на небольшие. Для таблицы не были найдены используемые индексы, что заставляет оптимизатор искать каждую строку. Это также может означать, что диапазон поиска настолько широк, что индекс был бы бесполезен.
UNKNOWN Чёрный неизвестно Примечание: Это значение по умолчанию, если соответствие определить нельзя

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/workbench-en/wb-performance-explain.html

Spec-Zone.ru

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