Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
MySQL тормозит ... (Yuri) 15/04/2004 - 12:28:35
      Re: Мне бы такие тормоза :) (Marat_L) 15/04/2004 - 13:29:38
      Re: Мне бы такие тормоза :) (Yuri) 15/04/2004 - 13:51:41
      Re: Мне бы такие тормоза :) (Marat_L) 15/04/2004 - 16:53:22
      Re: Мне бы такие тормоза :) (Yuri) 16/04/2004 - 13:36:24
      Re: Мне бы такие тормоза :) (Dinky) 16/04/2004 - 18:49:49

> Original message text:
> From: Yuri - 15/04/2004 - 12:28:35
> Subject:MySQL тормозит ...
> -----------------
> Имеем:
>
> таблица keyword (400 тысяч записей):
> id_keyword - PRIMARY KEY
> keyword - UNIQUE KEY
>
> таблица site_keyword (35 миллионов записей)
>
> id_keyword - KEY
> (id_site, id_keyword) - UNIQUE KEY (в данном запросе не используется, нужен в другом месте, но изза этого сильно распухает индекс)
>
> распределение в site_keyword очень non uniform -
> уникальных id_site там ~ 3 миллиона
>
> На запросах вида:
>
> SELECT
> COUNT(DISTINCT site_keyword.id_site) AS count
> FROM
> keyword
> JOIN site_keyword USING (id_keyword)
> WHERE
> keyword.keyword IN ('test')
>
> тормозит 10-20 секунд ...
>
> Вот EXPLAIN SELECT для этого запроса:
>
> mysql> \. q.sql
> *************************** 1. row ***************************
> table: keyword
> type: range
> possible_keys: PRIMARY,uniq_keyword
> key: uniq_keyword
> key_len: 32
> ref: NULL
> rows: 1
> Extra: Using where
> *************************** 2. row ***************************
> table: site_keyword
> type: ref
> possible_keys: id_keyword
> key: id_keyword
> key_len: 4
> ref: catalog_eng.keyword.id_keyword
> rows: 120
> Extra:
> 2 rows in set (0.00 sec)
>
>


From: Marat_L - 15/04/2004 - 16:53:22
Subject:Мне бы такие тормоза :)
-----------------
Нее..
Если разбить запрос на два - лучше стало или нет?

Ты помножаешь 35 млн записей на 400 тыс !!!
Потом фильтруешь, а потом еще агрегируешь!!!
Даже с оптимизаторами это круто.

И если у тебя не N-процессорный сервер с X-гигабайтами ОЗУ + SCSI RAID, то 10-20 секунд для такого запроса очень не плохо.

>Если и Postgres не поможет - Berkeley DB
Не знаю, не знаю :)


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
14068



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |