Несколько дней назад я начал использовать разделение, чтобы можно было работать с большим количеством данных.Должен ли я создать индекс для раздела с фиксированным ключом?
Я создал главную таблицу в качестве документации, предлагаю, создал несколько дочерних таблиц, которые наследуются от основной, а затем добавили ограничение для каждой дочерней таблицы для определения допустимого значения ключа. Ограничение было как:
ПРОВЕРКА (site_id = «google.com»)
Теперь вот мой вопрос:
При чтении документации я наткнулся на следующее предложение: «Для каждого раздела, создать индекс на ключевой столбец "
Должен ли я сделать это, если ключ будет одинаковым для всего раздела? Будут ли какие-либо преимущества наличия индекса в столбце site_id?
Когда я впервые прочитал его, я решил, что если все строки имеют один и тот же ключ (например, site_id = 'google_com'), то в индексе нет необходимости.
Здесь структура SQL-illustraing БД и типичное использование:
CREATE TABLE сайт ( site_id VARCHAR (50) ПЕРВИЧНЫЙ КЛЮЧ, DESCR текст );
- REQ является главной таблицей
CREATE TABLE REQ ( SITE_ID VARCHAR (50), временной метка временной метки );
- теперь давайте создадим несколько дочерних таблиц
INSERT INTO сайт (Site_ID) VALUES ('GOOGLE_COM'); CREATE TABLE req_google_com ( CHECK (site_id = 'google_com') ) INHERITS (req);
INSERT INTO site (site_id) VALUES ('twitter_com'); CREATE TABLE req_twitter_com ( CHECK (site_id = 'twitter_com') ) INHERITS (req);
- и теперь пишут некоторые запросы:
INSERT INTO req_google_com VALUES ('GOOGLE_COM', теперь()), ('GOOGLE_COM', теперь());
Я только что отредактировал оригинальное сообщение, чтобы показать структуру БД. Я не могу избавиться от столбца site_id. Хотя значение site_id всегда одинаково для данного фрагмента, оно отличается для другого и будет использоваться в предложении WHERE для доступа к данным прозрачным способом (путем выбора из таблицы master req). – Prikrutil
Я прочитал его как «Для каждого раздела создайте индекс в столбце site_id». Извините, я не понимаю разницы между «глобальным первичным ключом» и «ключ раздела», – Prikrutil