The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"sql индексы"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"sql индексы"
Сообщение от sector119 emailИскать по авторуВ закладки on 12-Сен-02, 17:58  (MSK)
атцы, есть вопрос!

объясни мне разницу между:
1) pole unique not null
2) pole primary key

и чем отличается индекс по двум полям от индекса по одному полю??? включается ли индекс созданый по двум полям когда идет селект только по одному из этих полей?
____________

вот мне и нужна эта уникальность по двум полям! типа я мог сделать
phone int4 not null,
datetime timestamp not null,
unique (phone, datetime)
а потом создать отдельно индекс на phone и отдельно на datetime!
будет делаться селект отдельно и по phone и по datetime и вместе по этим полям! как лучше создать индекс? отдельно на каждое поле или сразу на два один индекс!

или

phone int4,
datetime timestamp,
primary key (phone, datetime)

при создании primary key создается автоматом индекс на два поля одновременно! вот что лучше в моем случае!? сделать отдельные индексы на каждое поле или один на два сразу!???!??


Спасибо!

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "RE: sql индексы"
Сообщение от sas emailИскать по авторуВ закладки on 12-Сен-02, 20:22  (MSK)
>атцы, есть вопрос!

Hi

>
>объясни мне разницу между:
>1) pole unique not null

This is just unique constraint. Can be many per table

>2) pole primary key

This is not just a unique constraint but also used for referential integrity (primary/foreign keys relationships between tables). Only one primary key is allowed for table

>
>и чем отличается индекс по двум полям от индекса по одному полю???
>включается ли индекс созданый по двум полям когда идет селект только
>по одному из этих полей?

Depends on the database. For example for Oracle if y6ou have index on multiple columns, it can be used only if select's where clause uses columns in the same order like they defined in index starting from first one.

for example you have index on f1 and f2 columns. Index will be used if

select ... where f1 = 'something';
or
select ... where f1 = 'something' and f2 = 5;

and it will be not used if
select ... where f2 = 5;


>____________
>
>вот мне и нужна эта уникальность по двум полям! типа я мог
>сделать
>phone int4 not null,
>datetime timestamp not null,
>unique (phone, datetime)
>а потом создать отдельно индекс на phone и отдельно на datetime!
>будет делаться селект отдельно и по phone и по datetime и вместе
>по этим полям! как лучше создать индекс? отдельно на каждое поле
>или сразу на два один индекс!
>
>или
>
>phone int4,
>datetime timestamp,
>primary key (phone, datetime)
>
>при создании primary key создается автоматом индекс на два поля одновременно! вот
>что лучше в моем случае!? сделать отдельные индексы на каждое поле
>или один на два сразу!???!??
>

If you expect large number of queries on both columns semultaneously and separately, then my advice will be to create 2 indexes: on "f1 and f2" and on just "f2". But again it depends on the optimizer, so you have to check what is better for your database. Also remember, that each index increases update time, so number of indexes should be as low as possible. Primary key should be used if you have relationships which should be maintaned by database engine(preferable). Also you can have only one primary key per table and many indexes of other type (for example unique constraints)

>
>Спасибо!

thanks

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру