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

Форум MySQL

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

 

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

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

тема: Всегда ли стоит доверять оптимизатору?
 
 автор: freeneutron   (09.02.2009 в 08:35)   письмо автору
 
 

Всегда ли стоит доверять оптимизатору, или возможны случаи, когда выгоднее отсоединить от запроса одну таблицу и свести задачу к серии запросов?
Например:

$rez = $sql -> query("SELECT t1.num FROM t1, t2, t3 where t1.id = t2.t1_id and t2.id = t3.t2_id and t3.val = 1");

Если t3 ну слишком большая, то возможно выгоднее сделать так:

$temp = $sql -> query("SELECT * FROM t3 where t3.val = 1");
foreach($temp as $t3)
  $rez[] = $sql -> query("SELECT t1.num FROM t1, t2 where t1.id = t2.t1_id and t2.id = {$t3['id']}");

Если, конечно такое случается, то хотелось бы определить критерий, по которому можно определить ситуацию, когда следует прибегать к разбиению единого запроса...

  Ответить  
 
 автор: Trianon   (09.02.2009 в 10:07)   письмо автору
 
   для: freeneutron   (09.02.2009 в 08:35)
 

Запросы, мягко говоря, отличаются.
Второй фрагмент "подклеивает " таблиц t3 по первичному ключу. Первый - по чужому.

Если таблица t3 - огромна, то помимо изрядного (и совершенно неоправданного - на все поля) расхода памяти, огромным будет общее число запросов.

А так, первый запрос честно вытаскивает все строки таблиц 1 и 2 по ключам...
Если на t3.val индекс есть, то третью - по индексу.
И где же Ваша оптимизация?

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

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