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




MySQL.RU - Webboard



Вернуться
Оптимизация (bartwell) 03/05/2006 - 12:21:13
      Re: Оптимизация (Dinky) 03/05/2006 - 18:28:10
      Re: Оптимизация (bartwell) 03/05/2006 - 19:03:45
      Re: Оптимизация (Dinky) 03/05/2006 - 19:46:06
      Re: Оптимизация+ (Dinky) 03/05/2006 - 19:49:15
      Re: Оптимизация (bartwell) 05/05/2006 - 12:24:41
      Re: Оптимизация (bartwell) 05/05/2006 - 12:31:35
      Re: Оптимизация (Dinky) 05/05/2006 - 18:25:18
      Re: Оптимизация (best_before@rambler.) 28/11/2006 - 11:05:31

> Original message text:
> From: bartwell - 03/05/2006 - 12:21:13
> Subject:Оптимизация
> -----------------
> Есть таблица.
>
> CREATE TABLE search (
> domen varchar(60) NOT NULL default '',
> main_page int(1) NOT NULL default '0',
> url varchar(255) NOT NULL default '',
> update_date datetime NOT NULL default '0000-00-00 00:00:00',
> keywords text,
> ctype varchar(60) NOT NULL default '',
> link_to varchar(255) NOT NULL default '',
> cit mediumint(9) NOT NULL default '0',
> PRIMARY KEY (url),
> FULLTEXT KEY url (url,keywords)
> ) TYPE=MyISAM;
>
>
> В неё проходят запросы вида:
>
> SELECT url,domen,keywords,IF(UPPER(CONCAT(url,' ',keywords)) LIKE UPPER('%mp3%'),1,0),COUNT(*) FROM search WHERE update_date>'0000-00-00 00:00:00' AND ctype='text/html' AND MATCH (url,keywords) AGAINST ('mp3') GROUP BY domen ORDER BY NULL DESC LIMIT 12,6;
>
> Записей более 100`000. Как можно максимально ускорить эти запросы?
>


From: Dinky - 03/05/2006 - 19:46:06
Subject:Оптимизация
-----------------
1. можно, но лучше с :)
плохо это - индекс, а тем более уникальные на длинные строки, много места на диске, много ресурсов на поддержку и обработку
если это уж настолько критично, то лучше добавить поле char(32) и записывать туда MD5(url), с обычным индексом, не уникальным, и проверять на наличие программно

4. тогда плохо - до 5й версии mysql может использовать только один индекс на таблицу в запросе...

5. драсьте, пример прям в доке есть:
SELECT id, MATCH (url,keywords) AGAINST ('mp3') as score ... ORDER BY score;

6. можно набрать массив id-шек полученых из первого запроса и всю последующую навигацию по результатам поиска делать по этому массиву
например, если показывать 10 страниц по 6 строк, это будет 60 чисел, их даже в сессию можно запихать ;)

--
Dmitry


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

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

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



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