🗊Презентация Практическое применение explain в оптимизации запросов и схемы базы данных

Категория: Информатика
Нажмите для полного просмотра!
Практическое применение explain в оптимизации запросов и схемы базы данных, слайд №1Практическое применение explain в оптимизации запросов и схемы базы данных, слайд №2Практическое применение explain в оптимизации запросов и схемы базы данных, слайд №3Практическое применение explain в оптимизации запросов и схемы базы данных, слайд №4Практическое применение explain в оптимизации запросов и схемы базы данных, слайд №5Практическое применение explain в оптимизации запросов и схемы базы данных, слайд №6Практическое применение explain в оптимизации запросов и схемы базы данных, слайд №7Практическое применение explain в оптимизации запросов и схемы базы данных, слайд №8Практическое применение explain в оптимизации запросов и схемы базы данных, слайд №9Практическое применение explain в оптимизации запросов и схемы базы данных, слайд №10Практическое применение explain в оптимизации запросов и схемы базы данных, слайд №11

Вы можете ознакомиться и скачать презентацию на тему Практическое применение explain в оптимизации запросов и схемы базы данных. Доклад-сообщение содержит 11 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





Практическое применение explain в оптимизации запросов и схемы базы данных
Автор: Гусева татьяна
Описание слайда:
Практическое применение explain в оптимизации запросов и схемы базы данных Автор: Гусева татьяна

Слайд 2





Команда EXPLAIN

EXPLAIN – это один из самых мощных инструментов, предоставленных в ваше распоряжение для понимания MySQL-запросов и их оптимизации.
Описание слайда:
Команда EXPLAIN EXPLAIN – это один из самых мощных инструментов, предоставленных в ваше распоряжение для понимания MySQL-запросов и их оптимизации.

Слайд 3





Команда EXPLAIN : Синтаксис
EXPLAIN имя_таблицы (является синонимом операторов DESCRIBE имя_таблицы и SHOW COLUMNS FROM имя_таблицы)
EXPLAIN SELECT опции_выборки (MySQL сообщит о том, как будет производиться обработка SELECT, и предоставит информацию о порядке и методе связывания таблиц)
Описание слайда:
Команда EXPLAIN : Синтаксис EXPLAIN имя_таблицы (является синонимом операторов DESCRIBE имя_таблицы и SHOW COLUMNS FROM имя_таблицы) EXPLAIN SELECT опции_выборки (MySQL сообщит о том, как будет производиться обработка SELECT, и предоставит информацию о порядке и методе связывания таблиц)

Слайд 4





Команда EXPLAIN : Пример
Результат использования EXPLAIN:
Описание слайда:
Команда EXPLAIN : Пример Результат использования EXPLAIN:

Слайд 5





Что выводит EXPLAIN?
id - порядковый идентификатор каждого SELECT, находящегося внутри запроса (в случае использования вложенных подзапросов) 
select_type– тип SELECT запроса. Возможные значения: 
SIMPLE – запрос содержит простую выборку без подзапросов и UNION'ов
PRIMARY – запрос является внешним запросов в JOIN
DERIVED – запрос SELECT является частью подзапроса внутри выражения FROM
SUBQUERY – первый SELECT в подзапросе
DEPENDENT SUBQUERY - первый SELECT, зависящий от внешнего подзапроса
UNCACHEABLE SUBQUERY – некешируемый подзапрос
UNION – SELECT является вторым или последующим в UNION
DEPENDENT UNION – SELECT является вторым или последующим запросом в UNIONи зависит от внешних запросов/li>
UNION RESULT – SELECT является результатом UNION'а
Описание слайда:
Что выводит EXPLAIN? id - порядковый идентификатор каждого SELECT, находящегося внутри запроса (в случае использования вложенных подзапросов) select_type– тип SELECT запроса. Возможные значения: SIMPLE – запрос содержит простую выборку без подзапросов и UNION'ов PRIMARY – запрос является внешним запросов в JOIN DERIVED – запрос SELECT является частью подзапроса внутри выражения FROM SUBQUERY – первый SELECT в подзапросе DEPENDENT SUBQUERY - первый SELECT, зависящий от внешнего подзапроса UNCACHEABLE SUBQUERY – некешируемый подзапрос UNION – SELECT является вторым или последующим в UNION DEPENDENT UNION – SELECT является вторым или последующим запросом в UNIONи зависит от внешних запросов/li> UNION RESULT – SELECT является результатом UNION'а

Слайд 6





Что выводит EXPLAIN?
table – таблица, которой относится текущая строка 
type – тип связывания таблиц. Это один из самых важных столбцов в результате, потому что по нему можно вычислить потерянные индексы или понять, как можно улучшить запрос. 
Возможные значения: 
system – таблица содержит только одну строку (системная таблица);
const - таблица содержит не более одной соответствующей строки, которая будет считываться в начале запроса. Поскольку имеется только одна строка, оптимизатор в дальнейшем может расценивать значения этой строки в столбце как константы. Таблицы const являются очень быстрыми, поскольку они читаются только однажды;
eq_ref - для каждой комбинации строк из предыдущих таблиц будет cчитываться одна строка из этой таблицы. Это наилучший возможный тип связывания среди типов, отличных от const. Данный тип применяется, когда все части индекса используются для связывания, а сам индекс - UNIQUE или PRIMARY KEY;
ref - из этой таблицы будут считываться все строки с совпадающими значениями индексов для каждой комбинации строк из предыдущих таблиц. Тип ref применяется, если для связывания используется только крайний левый префикс ключа, или если ключ не является UNIQUE или PRIMARY KEY (другими словами, если на основании значения ключа для связывания не может быть выбрана одна строка). Этот тип связывания хорошо работает, если используемый ключ соответствует только нескольким строкам;
Описание слайда:
Что выводит EXPLAIN? table – таблица, которой относится текущая строка type – тип связывания таблиц. Это один из самых важных столбцов в результате, потому что по нему можно вычислить потерянные индексы или понять, как можно улучшить запрос. Возможные значения: system – таблица содержит только одну строку (системная таблица); const - таблица содержит не более одной соответствующей строки, которая будет считываться в начале запроса. Поскольку имеется только одна строка, оптимизатор в дальнейшем может расценивать значения этой строки в столбце как константы. Таблицы const являются очень быстрыми, поскольку они читаются только однажды; eq_ref - для каждой комбинации строк из предыдущих таблиц будет cчитываться одна строка из этой таблицы. Это наилучший возможный тип связывания среди типов, отличных от const. Данный тип применяется, когда все части индекса используются для связывания, а сам индекс - UNIQUE или PRIMARY KEY; ref - из этой таблицы будут считываться все строки с совпадающими значениями индексов для каждой комбинации строк из предыдущих таблиц. Тип ref применяется, если для связывания используется только крайний левый префикс ключа, или если ключ не является UNIQUE или PRIMARY KEY (другими словами, если на основании значения ключа для связывания не может быть выбрана одна строка). Этот тип связывания хорошо работает, если используемый ключ соответствует только нескольким строкам;

Слайд 7





Что выводит EXPLAIN?
(type)
fulltext – объединение, использующее полнотекстовый (FULLTEXT) индекс таблиц; 
ref_or_null – то же самое, что и ref, только содержащее строки со значением NULL в полях; 
index_merge – объединение, использующее список индексов для получения результата запроса; 
unique_subquery – результат подзапроса в выражении IN возвращает одну строку, используемую в качестве первичного ключа; 
index_subquery – то же самое, что и unique_subquery, только в результате больше одной строки; 
range – в запросе происходит сравнение ключевого поля с диапазоном значений (используются операторы BETWEEN,IN, >, >=); 
index – в процессе выполнения запроса сканируется только дерево индексов; 
all – в процессе выполнения запроса сканируются все таблицы. Это наихудший тип объединения и обычно указывает на отсутствие надлежащих индексов в таблице;
Описание слайда:
Что выводит EXPLAIN? (type) fulltext – объединение, использующее полнотекстовый (FULLTEXT) индекс таблиц; ref_or_null – то же самое, что и ref, только содержащее строки со значением NULL в полях; index_merge – объединение, использующее список индексов для получения результата запроса; unique_subquery – результат подзапроса в выражении IN возвращает одну строку, используемую в качестве первичного ключа; index_subquery – то же самое, что и unique_subquery, только в результате больше одной строки; range – в запросе происходит сравнение ключевого поля с диапазоном значений (используются операторы BETWEEN,IN, >, >=); index – в процессе выполнения запроса сканируется только дерево индексов; all – в процессе выполнения запроса сканируются все таблицы. Это наихудший тип объединения и обычно указывает на отсутствие надлежащих индексов в таблице;

Слайд 8





Что выводит EXPLAIN?
possible_keys – показаны возможные индексы, которые могут использоваться MySQL для поиска данных в таблице. На самом деле, значение этого столбца, очень часто помогает оптимизировать запросы. Если значение равно NULL, значит, никаких индексов не используется. 
key – отображается текущий ключ, используемый MySQL в данный момент. В этом столбце может отображаться индекс, отсутствующий в possible_keys. Оптимизатор запросов MySQL всегда пытается найти оптимальный ключ, который будет использоваться в запросе. При объединении нескольких таблиц, MySQL может использовать индексы, также не указанные в possible_keys. 
key_len – содержит длину ключа, выбранного оптимизатором запросов MySQL. Если значение key равно NULL, то key_len тоже NULL. По значению длины ключа можно определить, сколько частей составного ключа в действительности будет использовать MySQL.
ref – показаны поля или константы, которые используются совместно с ключом, указанным в столбце key. 
rows – количество строк, которые анализируются MySQL в процессе запроса. Это еще один важный показатель, указывающий на необходимость оптимизации запросов, особенно тех, которые содержат JOIN и подзапросы. 
extra – содержит дополнительную информацию о процессе выполнения запроса. Если значениями этого столбца являются ”Using temporary”, “Using filesort” и т.п, то это говорит о том, что это «проблемный» запрос, требующий оптимизации.
Описание слайда:
Что выводит EXPLAIN? possible_keys – показаны возможные индексы, которые могут использоваться MySQL для поиска данных в таблице. На самом деле, значение этого столбца, очень часто помогает оптимизировать запросы. Если значение равно NULL, значит, никаких индексов не используется. key – отображается текущий ключ, используемый MySQL в данный момент. В этом столбце может отображаться индекс, отсутствующий в possible_keys. Оптимизатор запросов MySQL всегда пытается найти оптимальный ключ, который будет использоваться в запросе. При объединении нескольких таблиц, MySQL может использовать индексы, также не указанные в possible_keys. key_len – содержит длину ключа, выбранного оптимизатором запросов MySQL. Если значение key равно NULL, то key_len тоже NULL. По значению длины ключа можно определить, сколько частей составного ключа в действительности будет использовать MySQL. ref – показаны поля или константы, которые используются совместно с ключом, указанным в столбце key. rows – количество строк, которые анализируются MySQL в процессе запроса. Это еще один важный показатель, указывающий на необходимость оптимизации запросов, особенно тех, которые содержат JOIN и подзапросы. extra – содержит дополнительную информацию о процессе выполнения запроса. Если значениями этого столбца являются ”Using temporary”, “Using filesort” и т.п, то это говорит о том, что это «проблемный» запрос, требующий оптимизации.

Слайд 9





устранение проблем с производительностью с помощью EXPLAIN

Использование EXPLAIN

Тип объединения равен ”ALL” (это наихудший вариант). Это значит, что
MySQL не может найти ни одного ключа, который может участвовать в объединении, поэтому
значение столбцов possible_keys и key равно NULL. Хуже всего то, что в процессе запроса
MySQL будет сканировать все записи во всех таблицах, об этом говорит значение столбцов
rows. При выполнении запроса будут просмотрены записи (15410 × 1 × 184443 × 193851),
чтобы получить результат из 34 записей. Это действительно ужасно, и будет только хуже, когда количество
записей в базе данных будет увеличиваться.
Описание слайда:
устранение проблем с производительностью с помощью EXPLAIN Использование EXPLAIN Тип объединения равен ”ALL” (это наихудший вариант). Это значит, что MySQL не может найти ни одного ключа, который может участвовать в объединении, поэтому значение столбцов possible_keys и key равно NULL. Хуже всего то, что в процессе запроса MySQL будет сканировать все записи во всех таблицах, об этом говорит значение столбцов rows. При выполнении запроса будут просмотрены записи (15410 × 1 × 184443 × 193851), чтобы получить результат из 34 записей. Это действительно ужасно, и будет только хуже, когда количество записей в базе данных будет увеличиваться.

Слайд 10





устранение проблем с производительностью с помощью EXPLAIN
Описание слайда:
устранение проблем с производительностью с помощью EXPLAIN

Слайд 11






Спасибо 
за внимание!
Описание слайда:
Спасибо за внимание!



Похожие презентации
Mypresentation.ru
Загрузить презентацию