Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как использовать EXPLAIN ?
 
 автор: Владимир55   (29.05.2013 в 14:09)   письмо автору
 
 

Прочитал несколько статей по поводу EXPLAIN, но не получается практически использовать этот сервис. В РНР скрипте делаю так:
$query = "EXPLAIN SELECT * FROM art WHERE artikul = '$NUMBER' ";$res2 = mysql_query($query);echo mysql_errno()." 192 : ".mysql_error()."<BR>"; 

Не понимаю, где смотреть результат?
В смысле, как увидеть информацию, вырабатываемую EXPLAIN, ведь скрипт ее не выводит ?

  Ответить  
 
 автор: Sfinks   (29.05.2013 в 14:30)   письмо автору
 
   для: Владимир55   (29.05.2013 в 14:09)
 

Вы PhpMyAdmin'ом пользуетесь? Просто выполните запрос в нем.
Если нет, то EXPLAIN возвращает результат в виде таблицы. Можете и получить его как при обычном селекте:
<?php
  $q 
'EXPLAIN ...';
  
$res mysql_query$q );
  while( 
$row mysql_fetch_assoc$res ) ) print_r$row );

  Ответить  
 
 автор: Владимир55   (29.05.2013 в 14:47)   письмо автору
10.3 Кб
 
   для: Sfinks   (29.05.2013 в 14:30)
 

Спасибо! Вроде бы, нормально получилось (скриншот), Только скупо очень - видимо, поскольку запрос простейший.

А время исполнения EXPLAIN разве не сообщает?

  Ответить  
 
 автор: Sfinks   (29.05.2013 в 17:12)   письмо автору
 
   для: Владимир55   (29.05.2013 в 14:47)
 

> А время исполнения EXPLAIN разве не сообщает?
Нет. Он показывает план запроса.

Для проверки времени в PMA есть (рядом со ссылкой [быстрая правка]) галка "профилирование".
Нажмите ее, увидите сколько времени тратится на каждую операцию во время запроса.

Или же из PHP можно так:
<?php 
  mysql_query
'SET profiling=1' );
  
mysql_query'SELECT * FROM art WHERE artikul = '.$NUMBER );
  
$res mysql_query'SHOW PROFILE' ); 
  while( 
$row mysql_fetch_assoc$res ) ) print_r$row );

  Ответить  
 
 автор: Владимир55   (30.05.2013 в 14:07)   письмо автору
 
   для: Sfinks   (29.05.2013 в 17:12)
 

Это бесценные сведения!

СПАСИБО!

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования