Good Day,Postgres Partition by Character Prefix
Я хотел бы проверить, как лучше всего разбить таблицу Postgres на префикс столбцов. У меня есть большой стол (+ - 750 миллионов строк х 10 столбцов), и я хотел бы разделить его на префикс столбца 1. данных выглядит как:
ABCDEF1xxxxxxxx
ABCDEF1xxxxxxxy
ABCDEF1xxxxxxxz
ABCDEF2xxxxxxxx
ABCDEF2xxxxxxxy
ABCDEF2xxxxxxxz
ABCDEF3xxxxxxxx
ABCDEF3xxxxxxxz
ABCDEF4xxxxxxxx
ABCDEF4xxxxxxxy
Их будет только когда-либо 10 перегородки т.е. ABCDEF0 ...-> ABCDEF9 ...
то, что я в настоящее время сделать, это сделать таблицы, как:
CREATE TABLE public.mydata_ABCDEF1 (
CHECK (col1 like 'ABCDEF1%')
) INHERITS (public.mydata);
CREATE TABLE public.mydata_ABCDEF2 (
CHECK (col1 like 'ABCDEF2%')
) INHERITS (public.mydata);
и т.д. Тогда триггер с подобной логикой:
IF (NEW.col1 like 'ABCDEF1%') THEN
INSERT INTO public.mydata_ABCDEF1 VALUES (NEW.*);
ELSIF (NEW.imsi like 'ABCDEF2%') THEN
INSERT INTO public.simdata_ABCDEF2 VALUES (NEW.*);
Я обеспокоен тем, что разделение таким образом ускорит время запроса? или если я должен рассмотреть раздел на substr (не уверен, как), или если я должен создать новый столбец с префиксом и разделом в этом столбце?
Любые советы приветствуются.
Да, я намерен индексировать «раздела» таблица после того, как данные заселены. Мой вопрос больше связан с тем, что наилучшим методом является разделение этого поля «символ» с использованием «LIKE». – QuickPrototype