Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Андрeй
Зарегистрирован: 13.08.2007 Сообщения: 4
|
Добавлено: Чт Апр 17 2008 12:33 Заголовок сообщения: Долгий запрос |
|
|
Здраствуйте, нацарапл запрос для мускула, который при наличии большего числа записей в таблице вешает мускул. Подскажите как улучшить ?
Запрос типа:
SELECT DISTINCT `upvd12`.`a` , `upvd12`.`b` , `upvd12`.`o` , `upvd12`.`p` , `upvd12`.`r`
FROM `upvd12`
, `upvd12` AS `www`
WHERE `upvd12`.`o` = `www`.`o`
AND `upvd12`.`p` = `www`.`p`
AND `upvd12`.`r` = `www`.`r`
AND `www`.`a` = `upvd12`.`a`
AND `upvd12`.`b` = `www`.`b`
AND `upvd12`.`id` != `www`.`id`
LIMIT 0 , 30;
Должен выбирать записи из одной таблицы в которых 4 одинаковых поля. |
|
Вернуться к началу |
|
|
Alex_pm
Зарегистрирован: 26.08.2006 Сообщения: 55
|
Добавлено: Чт Июн 19 2008 19:41 Заголовок сообщения: Re: Долгий запрос |
|
|
Андрeй писал(а): | Здраствуйте, нацарапл запрос для мускула, который при наличии большего числа записей в таблице вешает мускул. Подскажите как улучшить ?
Запрос типа:
SELECT DISTINCT `upvd12`.`a` , `upvd12`.`b` , `upvd12`.`o` , `upvd12`.`p` , `upvd12`.`r`
FROM `upvd12`
, `upvd12` AS `www`
WHERE `upvd12`.`o` = `www`.`o`
AND `upvd12`.`p` = `www`.`p`
AND `upvd12`.`r` = `www`.`r`
AND `www`.`a` = `upvd12`.`a`
AND `upvd12`.`b` = `www`.`b`
AND `upvd12`.`id` != `www`.`id`
LIMIT 0 , 30;
Должен выбирать записи из одной таблицы в которых 4 одинаковых поля. |
SELECT a, b, o, p, r FROM upvd12
WHERE b = a
AND o = a
AND p = a
AND r = a
+ индексы построй по всем полям - будет летать _________________ Infoscop.net |
|
Вернуться к началу |
|
|
C37
Зарегистрирован: 09.03.2005 Сообщения: 311
|
Добавлено: Сб Июн 21 2008 01:40 Заголовок сообщения: Re: Долгий запрос |
|
|
Андрeй писал(а): | SELECT DISTINCT `upvd12`.`a` , `upvd12`.`b` , `upvd12`.`o` , `upvd12`.`p` , `upvd12`.`r`
FROM `upvd12`
, `upvd12` AS `www`
WHERE `upvd12`.`o` = `www`.`o`
AND `upvd12`.`p` = `www`.`p`
AND `upvd12`.`r` = `www`.`r`
AND `www`.`a` = `upvd12`.`a`
AND `upvd12`.`b` = `www`.`b`
AND `upvd12`.`id` != `www`.`id`
LIMIT 0 , 30; |
Вы хоть поняли, что ваш запрос сравнивает каждую запись саму с собой? При этом он тщетно ищет такую запись, в которой в ней 4 поля тождественны самим себе, а пятое — нет... |
|
Вернуться к началу |
|
|
|