структура базы данных для нескольких индексов одного столбца - PullRequest
1 голос
/ 20 июня 2011

Предположим, у меня есть таблица Business, и я создаю индекс по столбцу «страна». Насколько я понимаю, БД разбивает таблицу на (вроде) порции, где один или несколько порций выделены для каждой страны.Примерно так:

chunk1 = записи для страны US

chunk2 = записи для страны US

chunk3 = записи для страны IN

chunk4 = записи для страныNZ ....

Если я сейчас создам отдельный индекс для столбца businessType, то как будет выглядеть структура базы данных?

Будет ли БД создавать 2 отдельные копии данных, одну проиндексированную по стране, а другую индексированную по businessType?

ИЛИ

Будет ли БД создавать фрагменты так, чтобы для каждого фрагментасодержит данные для каждой страны и для каждого типа бизнеса?Примерно так:

chunk1 = записи для страны = US & businessType = IT

chunk2 = записи для страны = US & businessType = Finance

chunk3 = записи для страны = US &businessType = Finance

chunk4 = записи для страны = US & businessType = Finance

chunk5 = записи для страны = IN & businessType = IT

chunk6 = записи для страны = IN& businessType = IT

chunk7 = записи для страны = IN & businessType = Сельское хозяйство ......

1 Ответ

1 голос
/ 20 июня 2011

Предположим, у меня есть таблица Business, и я создаю индекс по столбцу «страна». Как я понимаю, БД разбивает таблицу на (вроде) порции, где один или несколько порций выделены для каждой страны.основа

Нет.Ваше понимание неверно.

Таблица не будет разбита, она будет иметь записи в большом фрагменте, сначала в грубом порядке вставки.

Индекс это то, что организовано по частям, если хотите (даже если это обычно больше похоже на древовидную структуру).

Индекс хранит индексированное значение столбца и указатель расположения записи в самой таблице.

Если я сейчас создам отдельный индекс для столбца businessType, то как будет выглядеть структура базы данных?

Структура хранения таблицы вообще не изменится.У вас просто будет несколько дополнительных индексов.

Будет ли БД создавать 2 отдельные копии данных, одну проиндексированную по стране, а другую индексированную по businessType?

Если вы создадитеотдельный индекс для столбца «businessType», тогда у вас будет древовидная структура, организованная только «businessType».Это полностью не зависит от другого индекса, который вы создали ранее.

Будет ли БД создавать чанки, чтобы для каждого чанка содержались данные для каждой страны и для каждого типа бизнеса?

Если вы создадите составной индекс для (country, businessType), то вы действительно получите индекс, который «разделен на части» по обоим столбцам: Первый уровень дереваотправит по стране, второй (для данной страны) по businessType.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...