На каком основании я должен выбрать оптимальное количество разделов ha sh для данной таблицы? - PullRequest
0 голосов
/ 04 мая 2020

Например, я хотел бы создать секционированную таблицу ha sh, например:

    CREATE TABLE partition_table (
    some_id INT NOT NULL
) PARTITION BY HASH (some_id);

И я начну с создания 4 разделов, таких как:

CREATE TABLE partition_1 PARTITION OF partition_table FOR VALUES WITH (MODULUS 4, REMAINDER 0);
CREATE TABLE partition_2 PARTITION OF partition_table FOR VALUES WITH (MODULUS 4, REMAINDER 1);
CREATE TABLE partition_3 PARTITION OF partition_table FOR VALUES WITH (MODULUS 4, REMAINDER 2);
CREATE TABLE partition_ PARTITION OF partition_table FOR VALUES WITH (MODULUS 4, REMAINDER 3);

Я прочитал здесь что:

всегда рекомендуется, чтобы число таблиц было степенью 2

На каком основании я должен выбрать оптимальный количество разделов для данной таблицы?

Редактировать:

Моя цель - использовать разделение ha sh - равномерное распределение данных. Точнее, у меня есть таблица с хеш-идентификатором (которая не имеет логического порядка), и я хотел бы распределить данные равномерно по разделам на основе этого ключа.

1 Ответ

2 голосов
/ 04 мая 2020

Ха sh разбиение довольно бесполезно - это форма чередования с использованием разбиения. Единственное другое преимущество, которое я вижу, состоит в том, что для автоочистки легче поддерживать несколько небольших таблиц, чем одну большую таблицу.

По моему мнению, разделение ha sh имеет смысл, только если каждый раздел находится в отдельном табличном пространстве, и каждое табличное пространство использует различное хранилище. Тогда число разделов должно быть числом различных независимых дисков, которые у вас есть.

Я не вижу причин, чтобы иметь число двух степеней для количества разделов. Статья, на которую вы ссылаетесь, также не дает никакого объяснения, поэтому я бы сказал, забудьте об этом.

...