Вопрос по оптимизации sql запроса

makcumyc

Новичок
Вопрос по оптимизации sql запроса

Всем привет.
Проблема заключается в том, что очень долго (6.2459089756) идёт поиск при sql запросе следующего вида:

PHP:
select count(p.products_model) from  products p , shop_cat c , shop s  where s.id=c.shop_id and
 c.id=p.shop_cat_id and p.products_price>0 and   MATCH(txt) AGAINST('Sony*' IN BOOLEAN MODE )  and  
txt like " %STR% "  and  MATCH(txt) AGAINST('DB900*' IN BOOLEAN MODE )
в поиск вбивается название товара: Sony STR DB900
поиск производится по большому количеству товаров
может кто-то поможет оптимизировать запрос? По мне так вся проблема в LIKE, но только на что заменить этот LIKE?!
 

nirex

Новичок
ну во первых есть ли у тебя там полнотекстовый индекс, а во вторых три условия по тому же полю лучше сжать в один паттерн MATCH(txt) AGAINST('+Sony +DB900 +"STR"' IN BOOLEAN MODE )
попробуй возможно поможет.

-~{}~ 06.08.08 18:31:

ну и не забываем юзать explain
 

makcumyc

Новичок
спасибо за ответ.
да, полнотекстовый индекс там есть, а по поводу сжатия, сейчас попробую и отпишу, что получилось
 
Сверху