MySQL EXPLAIN UPDATE

18

Я пытаюсь ответить на следующий вопрос как часть моего пересмотра колледжа:

  

Создайте индекс по крайней мере для одного атрибута таблицы в   База данных сотрудников, где вы используете инструмент MySQL EXPLAIN для   ясно показывают выгоду (в терминах или отступающую) и отрицательную (в   условия обновления) создания соответствующего индекса.

В первой части я создал индекс в таблице employees и использовал следующий запрос до и после индекса, чтобы доказать, что это выгодно с точки зрения поиска:

EXPLAIN SELECT * FROM employees WHERE birth_date = '1953-09-02';

Этот индекс привел к уменьшению числа доступных строк с 300 000 до 63.

Теперь я не понимаю, как сделать вторую часть. Я ожидал, что смогу использовать команду EXPLAIN с UPDATE , но для этого она не работает.

Запрос UPDATE , который я пытаюсь проанализировать, выглядит следующим образом:

UPDATE employee SET first_name = 'first_name' WHERE birth_date = '1953-09-02';

Это подходящий запрос для ответа на вопрос и как я могу анализировать.

Большое спасибо заранее.

    
задан jim 05.07.2012 в 22:07
источник

2 ответа

33

EXPLAIN UPDATE существует в MySQL 5.6 , но не MySQL 5 путем сравнения документа MySQL. Вы пробовали это на сервере MySQL 5.6?

    
ответ дан Raymond Tau 05.07.2012 в 22:13
  • У меня нет возможности перейти на 5.6. Каков рекомендуемый способ выяснить, почему обновление MySQL 5.5 медленное, если в 5.5 нет объяснения? –  dustin.schultz 21.08.2015 в 21:57
  • Объяснение плана работает в 5.5, в операторах SELECT. Если вы действительно хотите понять, почему обновление медленное, если предположить, что предложение where в обновлении медленное, попробуйте сделать план объяснения для оператора select, где предложение where должно дать вам некоторый намек. Кроме того, вы можете клонировать db и обновлять до 5.6 для тестирования. –  Raymond Tau 22.08.2015 в 08:02
  • Вы также можете обратиться к комментарию этого вопроса. dba.stackexchange.com/questions/49788/... –  Raymond Tau 22.08.2015 в 08:09
10

Справочный документ Mysql 5.6: Ссылка

Начиная с MySQL 5.6.3 разрешенные объясняемые операторы для EXPLAIN - это SELECT, DELETE, INSERT, REPLACE и UPDATE. Перед MySQL 5.6.3 SELECT является единственным объясняемым оператором.

    
ответ дан andy 03.03.2014 в 11:33