Оптимизация запроса SELECT из 2 таблиц

Иван_и
Дата: 25.12.2012 20:15:24
Как можно оптимизировать?
$country = 1; // а может быть 0
$town = 234ж // тоже может быть 0

SELECT * 
FROM `profiles` AS table1, `config` AS table2
WHERE table1.country = '{$country}'
  && table1.town = '{$town}'
  && table1.country != '0'
  && table1.town != '0'
  && table1.user = table2.user
  && table2.system = '1'
  && ( table1.w = '1' || table1.w = '5' ) 
ORDER BY RAND( )
miksoft
Дата: 25.12.2012 20:25:44
Непонятен смысл "может быть 0". Если хоть одна из переменных станет равна 0, то запрос выдаст пустой результат. Какой в этом смысл?

Для остальных случаев - план в студию.
Иван_и
Дата: 25.12.2012 20:32:39
miksoft
Непонятен смысл "может быть 0". Если хоть одна из переменных станет равна 0, то запрос выдаст пустой результат. Какой в этом смысл?

Для остальных случаев - план в студию.


то есть в запросе есть:

&& table1.country != '0'
&& table1.town != '0'


это для того чтобы он выдавал пустой результат если $country и $town будут равны 0
miksoft
Дата: 25.12.2012 21:10:49
Иван_и
это для того чтобы он выдавал пустой результат если $country и $town будут равны 0
Самый оптимальный способ что-то сделать - не делать этого вообще.
Предварительно анализируйте, равны ли нулю $country или $town. Если хоть кто-то из них равен нулю, то не выполняйте запрос вообще. А из запроса выкиньте эту проверку.
Иван_и
Дата: 25.12.2012 22:04:08
Так как можно сделать так чтоб этот запрос выполнялся быстрее?

SELECT * 
FROM `profiles` AS table1, `config` AS table2
WHERE table1.country = '{$country}'
  && table1.town = '{$town}'
  && table1.user = table2.user
  && table2.system = '1'
  && ( table1.w = '1' || table1.w = '5' ) 
ORDER BY RAND( )
miksoft
Дата: 25.12.2012 22:04:52
Иван_и,

miksoft
Для остальных случаев - план в студию.
Иван_и
Дата: 25.12.2012 22:15:27
miksoft
Иван_и,

miksoft
Для остальных случаев - план в студию.


Какую студию?
miksoft
Дата: 25.12.2012 22:22:49
Иван_и
Какую студию?
т.е. сюда, на форум
Иван_и
Дата: 25.12.2012 22:30:04
miksoft
Иван_и
Какую студию?
т.е. сюда, на форум


А сейчас я не на форуме?
Akina
Дата: 25.12.2012 22:37:03
Иван_и, ты-то на форуме, а вот запрошенная информация - нет.