LINUX.ORG.RU

MySQL и индексация....


0

0

Я что то не пойму.... Делаю индекс на поле типа timestamp, в котором хранится время вставки записи вот так: alter table packets add index (time); Индекс добовляется.... Потом проверяю этот индекс в работе вот так: explain select * from packets where time='2003.06.20 10:00:00'; Так у меня в колонке rows показывается что выборка пройдет по всем 8 млн. записям, в колонке possible_keys написано time, в колонке key написано NULL и type ALL. Если же дабавлю индекс к полю id: alter table packets add index (id); то всё в порядке, то есть проверка: explain select * from packets where id=32; в колонке rows показывает что выборка пройдёт всего лишь по 300 тыс. записям, в колонке possible_keys написано id, в колонке key написано id и type ref. В чём трабл???

anonymous

Попробуй писать в селекте значение в формате YYYYMMDDHHMMSS
И поле называть не time, либо писать `time`

kka
()

Неа не помогает, создал новую таблицу, индекс по полю типа timestamp, занёс около 10 тыс. строк, всё равно не хочет нормально селект работать, проходит по всем записям, как будто и нет индекса, всё тоже самое, что описано выше... Версия MySql 3.23.54a-11, та что с RH9 идёт. Может кто для интереса попробует, и скажет нормально у него отрабатывает селект или тоже через ж...??

anonymous
()
Ответ на: комментарий от anonymous

Так у тебя скорее всего на весь индекс для 8-ми миллионов записей всего лишь несколько единиц уникальных записей. В таком случае оптимальней линейно просканировать все записи в таблице, чем выбранные в индексе.

sergio_nsk
()

Как учить C++ и вообще, стоит ли?

sergio_nsk - ну ты сказал - это же timestamp - он ОЧЕНЬ редко совпадает. 2автор - а зачем тебе делать индекс по imestamp? Создай себе int id autoincrement и юзай наздоровье.

Llama
()

Как учить C++ и вообще, стоит ли?

2sergio_nsk - я извиняюсь. очень сильно ступил.

Llama
()

Мда, давно комп не включал... Просто иногда есть задачи выбрать данные за определённый промежуток времени.. Так вот хотелось бы чтобы эти данные выбирались побыстрее....

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.