|
|
|
| Доброго времени суток!
Есть таблица:
CREATE TABLE `test_sort` (
`id` int(11) NOT NULL auto_increment,
`id_section` tinyint(4) NOT NULL default '0',
`counts` int(11) NOT NULL default '0',
`comment` int(5) NOT NULL default '0',
`date` int(10) NOT NULL default '0'
PRIMARY KEY (`id`),
KEY `id_section` (`id_section`,`date`)
) ENGINE=MyISAM AUTO_INCREMENT=3924 DEFAULT CHARSET=cp1251 AUTO_INCREMENT=3924 ;
|
Есть запрос:
SELECT `id`, `comment` FROM `test_sort` WHERE `id_section`='1' ORDER BY `date` DESC
|
Этот запрос, рабоатет отлично! С ним всё в порядке, Using filesort не выводится!
А если я попытаюсь сделать вот такой запрос:
SELECT `id`, `comment` FROM `test_sort` WHERE `id_section`='1' ORDER BY `comment` DESC
|
То Using filesort выскакивает как и при сортировке по counts! Как нужно расставить индексы и что нужно добавить, что бы Using filesort не было?
вот так вот добавить
KEY `id_section` (`id_section`,`comment`)
пробовал, не работает! | |
|
|
|
|
|
|
|
для: diablo_
(21.08.2009 в 20:24)
| | Ни столбец date, ни comment не участвуют в условии запроса. Вам нужно добавить просто KEY `id_section_idx` (`id_section`).
И желательно писать`id_section`= 1 (без кавычек), если это число. | |
|
|
|
|
|
|
|
для: Fractured
(21.08.2009 в 21:31)
| | А почему число надо без кавычек писать? | |
|
|
|
|
|
|
|
для: Diablo_
(22.08.2009 в 01:18)
| | По большлму счету - по той же причине, по которой в повседневной жизни Вы не ставите кавычек вокруг чисел. | |
|
|
|
|
|
|
|
для: diablo_
(21.08.2009 в 20:24)
| | > вот так вот добавить
> KEY `id_section` (`id_section`,`comment`)
> пробовал, не работает!
Чего не делает? | |
|
|
|
|
|
|
|
для: Trianon
(22.08.2009 в 00:25)
| | не исчезает "Using filesort"
Если удалить
KEY `id_section` (`id_section`,`date`)
и вписать
KEY `id_section` (`id_section`,`comment`)
то при запросе
EXPLAIN SELECT `id`, `comment` FROM `test_sort` WHERE `id_section`='1' ORDER BY `comment` DESC
"Using filesort" исчезает!
А сразу оба
KEY `id_section` (`id_section`,`date`)
KEY `id_section` (`id_section`,`comment`)
не работают! | |
|
|
|
|
|
|
|
для: Diablo_
(22.08.2009 в 01:16)
| | Я всё ж добью. Если время позволит. Завтра день занят. Впрочем, может кто продолжит...
>А сразу оба
>KEY `id_section` (`id_section`,`date`)
>KEY `id_section` (`id_section`,`comment`)
>не работают!
Кто не работают?
В чем это выражается? | |
|
|
|
|
|
|
|
для: Trianon
(22.08.2009 в 01:36)
| | В том, что используеся сортировка "Using filesort"
Почему если я прописываю вот этот ключ
KEY `id_section` (`id_section`,`date`)
она не используется!?
а если прописываю ещё и этот
KEY `id_section` (`id_section`,`comment`)
она используется??? | |
|
|
|
|
|
|
|
для: Diablo_
(22.08.2009 в 02:05)
| | >а если прописываю ещё и этот
То есть создать два индекса у Вас получилось?
>она используется???
Вы меня спрашиваете?
Вы же видите результаты эксплейнов, а не я. | |
|
|
|
|
|
|
|
для: Trianon
(22.08.2009 в 02:18)
| | Я на том форуме, довольно давно и тебя знаю, очень хорошо!))) Часто видел втои ответы вопросы и тд)))
Вот зная, что ты будешь задавать кучу глупых вопросов)))))))) я специально БД и запросы приложил! Ну вставь их в мускул да проверь! И ты сам всё увидешь! | |
|
|
|
|
|
|
|
для: Diablo_
(22.08.2009 в 12:09)
| | Что ж ... задайте один умный. | |
|
|
|
|
|
|
|
для: Trianon
(22.08.2009 в 23:15)
| | я уже трижды его задал!
Почему приспользовани ключевых полей: KEY `id_section` (`id_section`,`date`) "Using filesort" не используется?
А при условии других ключевых полей:KEY `id_section` (`id_section`,`comment`) "Using filesort"
используется? | |
|
|
|
|
|
|
|
для: Diablo_
(23.08.2009 в 03:20)
| | умный | |
|
|
|