[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Оптимизация запроса
z3rg
Кака лучше Оптимизировать запрос

к примеру есть запрос

..SELECT id,id1,id2,id3,id4 FROM

if(id2>100){
ид 2 используется 100 раз потом иначе
}
else {
используются
id1,id2,id3,id4
}

стоит ли делать так

SELECT id1 FROM

if(id2>100){
ид 2 используется 100 раз потом иначе
}
else {
..SELECT id,id1,id2,id3,id4 FROM

используются
id1,id2,id3,id4
}




Спустя 48 минут, 38 секунд (10.03.2009 - 18:21) Joker написал(а):
три раза прочел и нечо не понел)) что оптимизировать то?)

Спустя 4 минуты, 38 секунд (10.03.2009 - 18:26) Viking написал(а):
Joker
ты крут... я четыре раза прочел, на четвертый раз самое первое слово разглядел, дальше читать не захотелось...
smile.gif

Спустя 2 минуты, 24 секунды (10.03.2009 - 18:28) Viking написал(а):
z3rg
id,id1,id2,id3,id4 - вообще как-то странно выглядит, можешь сформулировать задачу на более высокоуровневом языке?

Спустя 14 минут, 7 секунд (10.03.2009 - 18:42) Joker написал(а):
Цитата (Viking @ 10.03.2009 - 15:26)
Joker
ты крут... я четыре раза прочел, на четвертый раз самое первое слово разглядел, дальше читать не захотелось...
smile.gif

ты прав biggrin.gif biggrin.gif biggrin.gif biggrin.gif незаметил это слово biggrin.gif biggrin.gif

Спустя 39 минут, 20 секунд (10.03.2009 - 19:22) z3rg написал(а):
Viking, эт я так к примеру набросал, вот надеюсь так понятнее


PHP
$qer123 = mysql_query("SELECT * FROM `baza` WHERE `id` = $id");

if(
mysql_num_rows($qer123) > 0){
while(
$grow8 = mysql_fetch_array($qer123))
{

if ($grow8['znac']<1000){
echo $grow8['znac'];
}

else {
echo $grow8['znac1'] , $grow8['znac2']  , $grow8['znac3']  ...;
}
   
}


можно сделать вот так

PHP
$qer123 = mysql_query("SELECT id,znac FROM `baza` WHERE `id` = $id");

if(
mysql_num_rows($qer123) > 0){
while(
$grow8 = mysql_fetch_array($qer123))
{

if ($grow8['znac']<1000){
echo $grow8['znac'];
}

else {
$qer12345 = mysql_query("SELECT znac1, znac2, znac3 ... FROM `baza` WHERE `id` = $id");
$grow9 = mysql_fetch_array($qer12345);
echo $grow9['znac1'] , $grow9['znac2']  , $grow9['znac3']  ...;
}
  
}


и хватит засерать чужие темы, кот захочет тот поймет, а если хотите постебаца идите на баш

Спустя 21 минута, 19 секунд (10.03.2009 - 19:43) Viking написал(а):
так вроде подятнее
и ну дык в первом случае у тебя один запрос делается, а во втором куча, а данные из запроса берутся одинаковое количество раз, очевидно первый способ эффективнее, или я не так понял?
Цитата
и хватит засерать чужие темы, кот захочет тот поймет, а если хотите постебаца идите на баш

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

Спустя 1 час, 53 минуты, 40 секунд (10.03.2009 - 21:37) z3rg написал(а):
Viking, поняли вы правильно но смысл в том что 2 пункт будет исполнятся к примеру через 100 раз

Спустя 10 минут, 56 секунд (10.03.2009 - 21:47) Joker написал(а):
Первый вариант лучше, во встором ты мускул насиловать начнеш.

Вот эту провекру бесмысленно делать

PHP
if(mysql_num_rows($qer123) > 0)


while и так не будет работать если нечего не достано...

Спустя 12 минут, 11 секунд (10.03.2009 - 22:00) Viking написал(а):
Цитата
Viking, поняли вы правильно но смысл в том что 2 пункт будет исполнятся к примеру через 100 раз

дык он в любом случае через 100 раз исполняется, только в первом случае он печатает данные, а во втором случае он делает запрос, достает данные и печатает данные, дык что лучше?

Спустя 23 минуты, 31 секунда (10.03.2009 - 22:23) kirik написал(а):
А можно одним запросом (если я верно понял условие):
SQL
SELECT IF(`znac`<1000,`znac`,CONCAT(`znac1`,`znac2`,`znac3`...)) AS `znac` FROM `baza`

Спустя 4 часа, 16 минут, 22 секунды (11.03.2009 - 02:40) HardWoman написал(а):
Цитата
и хватит засерать чужие темы, кот захочет тот поймет, а если хотите постебаца идите на баш


УХ ТЫ huh.gif он так с форума всех выгонит
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.