SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 20.06.2012 18:36:45

nkaren
Участник
Зарегистрирован: 20.06.2012
Сообщений: 6

Мускул вешается от запроса...

Здравствуйте. У меня такая проблема:
Нужно найти одинаковые данные в таблице назовем ее table.
Есть поля Title (название)
               FileType  (расширение файла)
               Id  (уникальное для каждого)
И еще несколько полей которые нам не нужны здесь.
Всего в таблице около 300 тысяч записей.
В таблице есть одинаковые названия Title но разные FileType
Хотелось бы вывести все одинаковые значения отсортированные по Title чтобы поудалять ненужные.
Вот таким запросом попробовал отсортировать но Мускул напрягается на долго... Ждал долго около часа... Ничего путного не получилось. Может кто подскажет.

select *
  from table
where Title in (
                 select Title
                   from table
                  group by Title
                 having count(*) > 1
)
order by Title

Неактивен

 

#2 20.06.2012 18:57:08

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Мускул вешается от запроса...

А зачем Вам подзапрос здесь? Не проще ли так:

select Title from table group by Title having count(*) > 1 order by Title


?
И кстати, на поле Title есть индекс?


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#3 21.06.2012 08:59:40

nkaren
Участник
Зарегистрирован: 20.06.2012
Сообщений: 6

Re: Мускул вешается от запроса...

индекс по полю Title есть.
В том то и дело что мне нужно select * сделать чтоб подредактировать ручками одинаковые записи.

Неактивен

 

#4 21.06.2012 09:02:38

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Мускул вешается от запроса...

Попробуйте через JOIN запрос переписать - вполне может быстрее получится.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#5 21.06.2012 09:07:34

nkaren
Участник
Зарегистрирован: 20.06.2012
Сообщений: 6

Re: Мускул вешается от запроса...

незнаю как правильно написать через join этот запрос ;-(

Неактивен

 

#6 21.06.2012 09:09:20

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Мускул вешается от запроса...

Что-то такое:

select o.* from your_table o join (
                 select Title
                   from your_table
                  group by Title
                 having count(*) > 1
) i using(Title);


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#7 21.06.2012 09:21:02

nkaren
Участник
Зарегистрирован: 20.06.2012
Сообщений: 6

Re: Мускул вешается от запроса...

Ух !!! СРАБОТАЛО! И очень шустро. Спасибо.  А можете объяснить почему через JOIN так быстро делает? Я весь проект переписывать сейчас начну через JOIN )))

Неактивен

 

#8 21.06.2012 09:23:47

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Мускул вешается от запроса...

У MySQL до сих пор, к сожалению, не поправлена бага, что независимый запрос в IN часто считается за зависимый и исполняется для каждой строки внешнего запроса. Поэтому запросы с IN и NOT IN действительно на всякий случай стоит писать в форме JOIN, вреда от этого не будет. Весь проект переписывать вряд ли стоит, а вот узкие места - вполне smile.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#9 21.06.2012 10:15:23

nkaren
Участник
Зарегистрирован: 20.06.2012
Сообщений: 6

Re: Мускул вешается от запроса...

Огромаднейшее спасибо ))))

Неактивен

 

#10 21.06.2012 10:31:22

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Мускул вешается от запроса...

nkaren, попробуйте поставить MariaDB. С MySQL полная совместимость, но подзапросы обрабатываются корректно - переписывать не придется. См. наш доклад в Новосибирске: Новое в Percona Server и MariaDB.

Неактивен

 

#11 21.06.2012 17:19:54

nkaren
Участник
Зарегистрирован: 20.06.2012
Сообщений: 6

Re: Мускул вешается от запроса...

Спасибо за совет, сейчас буду смотреть ))

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson