Индексите на PostgreSQL ускоряват SQL заявките, като ускоряват търсенията, филтрите и присъединяванията. Ето как да създадете индекс в PostgreSQL, за да ускорите заявките към базата данни, като използвате израза CREATE INDEX на PostgreSQL.
Как да създадете индекс в PostgreSQL
Ето стъпките за създаване на индекс в PostgreSQL с помощта на оператор CREATE INDEX на PostgreSQL. Да приемем, че имате следната таблица
CREATE TABLE orders(
order_id INT PRIMARY KEY,
product_id INT NOT NULL,
sale INT NOT NULL,
product_name VARCHAR(10)
);
Как да добавя индекс към колона в таблица
Да приемем, че искате да добавите индекс за колона или набор от колони, след което използвайте израз CREATE INDEX. Ето синтаксиса на израза CREATE INDEX
CREATE [UNIQUE] INDEX [CONCURRENTLY] index_name ON table_name
[USING METHOD](column_list)
В горната заявка указваме името на индекса след CREATE INDEX, таблицата, за която трябва да създадете индекс, и списък с колони, които да бъдат включени в индексирането.
Можете по избор да посочите UNIQUE ключова дума, за да сте сигурни, че вашият индекс съдържа само уникални стойности
PostgreSQL поддържа различни методи за индексиране като btree
, hash
, gist
, spgist
, gin
и brin
които можете да посочите по време на създаване на индекс.
По подразбиране PostgreSQL използва btree индекси.
Ето пример за добавяне на нов индекс за колона име_на_продукт в горните поръчки таблица
CREATE INDEX prod_id_index ON orders (product_id);
Ето как да създадете индекс с помощта на множество колони
CREATE INDEX prod_id_index ON orders (product_id, order_id);
Ето как да създадете индекс с помощта на хеш метод
CREATE INDEX prod_id_index ON orders using hash(product_id, order_id);
Ето как да създадете уникален индекс, за да избегнете дублирани стойности
CREATE UNIQUE INDEX prod_id_index ON orders (product_id);
PostgreSQL също така ви позволява да създавате частичен индекс с помощта на клауза WHERE, където се индексират само съответстващи стойности
CREATE INDEX prod_id_index ON orders (product_id) where status=1;
В горната заявка само тези prod_id са индексирани, където status=1
Надяваме се, че горната статия ще ви помогне да създадете индекс в PostgreSQL
Ubiq улеснява визуализирането на данни за минути и наблюдение в табла за управление в реално време. Опитайте днес!