|
|
|
Junior 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 Или два отдельных?
Что-бы побыстрее+поменьше ресурсов уходило. :)
Зарание пасиба.
|
|
|
|
|
Supreme 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)
|
|
|
|