Майэскьюэль не понял подзапроса

Feb 13, 2012 18:54

Странности творятся. Почитав мануал, обращаюсь к друпаловой БД, ищу дубликаты адресов в таблице с 7500 строками:
SELECT `alias`
FROM `PREFIX_url_alias`
GROUP BY `language`, `alias`
HAVING COUNT(*)>1;
MySQL достаточно резво выдаёт ответ из почти семи десятков строк. Делаю запрос с подзапросом, чтоб выбрать номера узлов с найденными на предыдущем шаге ( Read more... )

drupal, sql, work, mysql

Leave a comment

Comments 10

slach February 13 2012, 14:28:37 UTC
если версия mysql ниже чем 5.5
то оно априори на подзапросах тормозить будет

EXPLAIN погляди ... можешь удивиться

Reply

anspa February 13 2012, 15:32:34 UTC
а что случилось в версии 5.5? Болгарский кандидат наук наконец-то написал обещанную оптимизацию перекрестных запросов?

Reply

slach February 14 2012, 05:11:47 UTC
нет что вы... ничего не случилось =) продолжайте дальше исходить слюной =)
Монти и Петя Зайвцев, по совету Момджана
начали приносить лобковые скальпы под портрет Ларри Эллисона и Стива (не джобс) Болмера ;-))

Reply

anspa February 14 2012, 05:26:19 UTC
кхм, совет не по адресу.

Reply


anspa February 13 2012, 15:32:04 UTC
mysql известно тормозит на перекрестных запросах (по экспоненте с ростом количества записей в исходных таблицах).

можно сделать temp table, выбрав туда ключи дубликатов. и уже из той таблицы попробовать сделать alias in (select ...

в обеих таблицах (временной и исходной) ключевое поле (alias) должны быть проиндексированы.

Reply

slach February 14 2012, 05:13:30 UTC
вот это кстати дельный совет, реально =)

Reply


Leave a comment

Up