Как улучшить MySQL запрос? - PullRequest
1 голос
/ 24 марта 2012

Не могли бы вы помочь мне сделать этот запрос быстрее. Мой запрос работоспособен, но слишком медленный: '(

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

Мой запрос выглядит следующим образом:

select * from `t` 
where id in (select id from `t` group by word having count(*)>1)

Ответы [ 3 ]

3 голосов
/ 24 марта 2012

Следующий запрос должен дать вам более точные результаты ... индексирование word должно улучшить вашу производительность:

select t1.* 
from new as t1 
join (select word from new group by word having count(*) > 1) as t2
on t1.word = t2.word
0 голосов
/ 24 марта 2012

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

ИСПРАВЛЕНО : хорошо, неправильно, без подзапроса слово может появляться несколько разно не все строки, в то время как вам действительно нужны именно все строки.

0 голосов
/ 24 марта 2012
select new.* from new 
JOIN (select word from new group by word having count(*)>1) AS new1
USING (word)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...