русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Оператор EXPLAIN


Дата добавления: 2015-07-09; просмотров: 672; Нарушение авторских прав


EXPLAIN может в точности рассказать вам, что происходит, когда вы выполняете запрос. Эта информация позволит вам обнаружить медленные запросы и сократить время, затрачиваемое на обработку запроса, что впоследствии может значительно ускорить работу вашего приложения.

Оператор EXPLAIN можно применять двумя способами:

 

1) EXPLAIN tbl_name; (идентично describe tbl_name;)

 

2) Применение оператора EXPLAIN перед SELECT запросами.

 

Рассмотрим второй способ. Простейший пример использования:

 

EXPLAIN SELECT * FROM student WHERE idStudent = 2;

 

В этом примере производится выборка данных студента на основе его идентификатора (idStudent). Вот то, что мы имеем в результате выполнения запроса EXPLAIN:

 

 

Id: Идентификатор (ID) таблицы в запросе. EXPLAIN создает по одной записи для каждой таблицы в запросе.

Select_type: simple. Возможные значения: SIMPLE, PRIMARY, UNION, DEPENDENT UNION, SUBSELECT, и DERIVED. Это тип запроса.

· SIMPLE – обычный тип запроса SELECT.

· PRIMARY – внешний (первый) запрос, в котором используются подзапросы и соединения.

· UNION – второй или последний запрос в соединении

· DEPENDENT UNION - второй или последний запрос в соединении, зависящий от первичного запроса

· SUBQUERY – внутренний подзапрос.

· DEPENDENT SUBQUERY – внутренний подзапрос, зависящий от первичного запроса

· DERIVED – подзапрос, использованный в выражении FROM.

 

Table. Имя таблицы, из которой MySQL читает данные.

Type. Тип объединения, которое использует MySQL. Возможные значения: eq_ref, ref, range, index, или all. (const – таблица в запросе считывается только однажды)

Possible_keys. Список индексов (или NULL, если индексов нет), которые MySQL может использовать для выборки рядов в таблице.

Key. Название индекса, который использует MySQL (после проверки всех возможных индексов).



Key_len. Размер ключа в байтах.

Ref. Колонки или значения, которые используются для сравнения с ключем.

Rows. Количество рядов, которые MySQL необходимо проверить, для обработки запроса(!)

Extra. Дополнительная информация о запросе.

 

Этот пример достаточно прост. Мы производим поиск по первичному ключу (idStudent) и может быть только одна запись, которая подойдет нашим условиям (переменная rows равна 1).

 

Рассмотрим более расширенный пример. Создадим еще одну таблицу address, содержащую место проживания студентов.

 

 

EXPLAIN SELECT *

FROM student

INNER JOIN ADDRESS

ON student.idStudent = address.user

WHERE student.idStudent = 1;

 

Наблюдаем результат, и видим, что во второй таблице не используется индекс, и она просматривается вся при соединении. При большом количестве данных это очень критично.

 

 

Добавим индекс во вторую таблицу для поля user.

 

ALTER TABLE address ADD INDEX (user);

 

Наблюдаем результат:

 

 

Теперь поле проиндексировано и просматривается всего лишь 1 запись из присоединяемой таблицы.

 



<== предыдущая лекция | следующая лекция ==>
Создание индекса | Представления (обзоры)


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.217 сек.