Как лучше проиндексировать?
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



Как лучше проиндексировать? Expand / Collapse
Автор
Сообщение
08.01.2002 11:06
Junior Member

Junior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior Member

участник
Last Login: 23.10.2002 14:08
Сообщ.: 16, Visits: 177
Есть некая база
с двумя numeric полями (допустим будем звать их f1 и f2) и другое, в которых собствнно хранятся все данные (ну к примеру назовем DataF1).
Причем выборка из этой базы может быть такой:
select DataF1 from myDB where f1=10 and f2=5 order by f1 desc
Бывает такой:
select DataF1 from myDB where f1=10 order by f1 desc
И еще такой:
select DataF1 from myDB where f2=5 order by f1 desc
(ну т.е. идет выборка по какому-нибудь полю, либо сразу по 2м, но всегда сортируется по первому)

Так вот возникает вопросец - какой лучше сделать индекс?
Один, и в нем два поля - f1 desc, f2 asc
Или два отдельных?

Что-бы побыстрее+поменьше ресурсов уходило. :)

Зарание пасиба.
Сообщ. #738549
10.01.2002 11:35
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 13.02.2002 12:46
Сообщ.: 266, Visits: 2 927
Все зависит от относительного количества запросов

select DataF1 from myDB where f1=10 and f2=5 order by f1 desc
требуются индекс: (f1 desc,f2)

select DataF1 from myDB where f1=10 order by f1 desc
требуются индекс: (f1 desc)

select DataF1 from myDB where f2=5 order by f1 desc
требуются индексы: (f2) и (f1 desc)

Наибольшего количества ресурсов требуется для (f1,f2), повидимому оптимально использовать два индекса (f1 desc) и (f2)
Сообщ. #738822
« пред. тема | след. тема »


Эту тему читают Expand / Collapse
Посетители: 0 (0 гостей, 0 участников, 0 скрыт.участников)
Сейчас нет участников, просматривающих тему.
Модераторы: Alexey, boombastik, bazile, pl, Alexey Spirin

Время GMT +3:00, Сейчас 2:36