Сократить время выполнения sql-запроса

Yura

Новичок
Сократить время выполнения sql-запроса

Есть доска объявлений "Куплю/продам".
Таблица mysql tbl_board (в ней около 100 тыс записей):

id_board int unsigned not null
b_title varchar(250)
b_text
b_contact varchar (200)
b_phone varchar (100)
b_mail varchar (50)
b_url varchar (100)
company_name varchar(150)
id_city mediumint
status 'hide','visible','m'
b_folder '1','2'
data_ins datetime
data_modify datetime


b_folder=1 - куплю, =2 - продам

Запрос:
"SELECT * FROM tbl_board WHERE b_folder=".$b_folder." AND b_status ='visible' ORDER by data_ins desc LIMIT ".$lines_per_page

Время выполенния запроса - 18 сек.
Добавил индексы для b_folder, b_status и data_ins - время сократилось всего-лишь на 2 сек.

Как можно сократить время выполнения запроса в данонм случае?
 

whirlwind

TDD infected, paranoid
Что говорит EXPLAIN после добавления индексов? Возможно тормоза из-за передачи большого объема. b_text не блоб случайно?
 

Yura

Новичок
Автор оригинала: whirlwind
Что говорит EXPLAIN после добавления индексов? Возможно тормоза из-за передачи большого объема.
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE ptr_board ALL NULL NULL NULL NULL 94312


b_text не блоб случайно?
Нет, text
 

Yura

Новичок
Автор оригинала: Wicked
-- правильно было бы
Сделал. Время выполнения запроса сократилось - теперь менее 1 сек. Спасибо за помощь!!!

Но ужасно тормозит при поиске по b_title и b_text. Я использую b_title like '%".$b_title."%'
С чем это может быть связано? Для этих полей нужно еще что-то добавить или в запросе что-то другое, отличное от like, использовать?
 

Wicked

Новичок
или в запросе что-то другое, отличное от like, использовать?
запросы типа %...% не могут использовать индексы.
обычно в таких случаях переходят на полнотекстовый поиск.
 

Yura

Новичок
Автор оригинала: Wicked
?
Пардон - ошибся - tbl_board - правильно

-~{}~ 29.04.08 16:32:

Автор оригинала: Wicked
запросы типа %...% не могут использовать индексы.
обычно в таких случаях переходят на полнотекстовый поиск.
Т.е., добавить fulltext для этих полей?
 
Сверху