не получается индексирование

predator

web designer
не получается индексирование

Таблица MyISAM
есть индекс по полям lft и rgt _по обоим сразу_
делаем запрос:
PHP:
EXPLAIN SELECT id, lft, rgt, level FROM articles 
WHERE 1 BETWEEN lft AND rgt ORDER BY level DESC
в результате столбцы key и possible_key равны NULL
как найти в чём ошибка?

зы
id, lgt, rgt, level - типа int
 

tony2001

TeaM PHPClub
1. запрос какой-то бессмысленный.
2. а зачем индекс по двум полям? может надо ДВА индекса?
 

V.Gubarev

Guest
Гы.. Действительно странный запрос. Может, расскажешь, что за задача?
 

predator

web designer
1. ну вообще запрос такого вида:
PHP:
SELECT id, lft, rgt, level FROM articles WHERE $article_info[lft] BETWEEN lft AND rgt ORDER BY level DESC
- это я для примера 1 написал. Он мне строит путь от кликнутого узла до корня [древовидная структура типа Nested Sets, спрашивайте su1d об этом :)]. Короче меню строит (посмотри http://space.ionichost.com )
2. пробовал - тоже самое. Вот результат из phpMyAdmin на запрос приведённый выше (вместо переменной id записи):
table-articles type-ALL possible_keys-NULL key-NULL key_len-NULL ref-NULL rows-81 Extra-where used; Using filesort
81 rows - это все мои записи в данной таблице - т.е. шерстит она всю таблицу, ну и индексов как видите в помине нету :(
2V.Gubarev см. п.1

зы:
с индексами экспериментирую на своей машине, может что-то в конфигурации mySQL? Хотя проверил другой запрос (правда попроще и по другой таблице) он как положено пользуется индексами...
 
Сверху