Задавайте вопросы, мы ответим
Вы не зашли.
SELECT SQL_CALC_FOUND_ROWS `t1`.`id`, `t1`.`dir`, `t1`.`dir_count`, `t1`.`path`, `t1`.`infolder`, `t1`.`rus_name` AS `name`, `t1`.`size`, `t1`.`loads`, `t1`.`timeupload`, `t1`.`yes`, `t1`.`no`, `t2`.`id` AS `back` FROM `files` AS `t1` LEFT JOIN `files` AS `t2` ON `t2`.`path` = `t1`.`infolder` WHERE `t1`.`rus_name` LIKE "%Дорога в ад%" AND `t1`.`hidden` = "0" LIMIT 0, 9;
EXPLAIN
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ALL NULL NULL NULL NULL 780768 Using where
1 SIMPLE t2 eq_ref path path 767 kreowap_kreoseo.t1.infolder 1
Как можно оптимизировать данный запрос?
Неактивен
Нее, такой запрос — это то, что Вы ищете
Вы обречены полностью сканировать всю таблицу, потому что LIKE '%…%' и
SQL_CALC_FOUND_ROWS. Имеет смысл сделать полнотекстовый индекс.
Неактивен
Что вы имеете ввиду под "полнотекстовый индекс"? Индекс по rus_name ? он есть
Неактивен
Нет. FULLTEXT индекс
http://dev.mysql.com/doc/refman/5.1/en/ … earch.html
Неактивен
ааа. можно было и без ссылки. по анг названию сразу ко мне дошло что нужно)
Спасибо
Отредактированно WebGraf (24.08.2010 13:05:26)
Неактивен