PostgreSQL

Как да създадем индекси в PostgreSQL

Как да създадем индекси в PostgreSQL

Индексите са специализирани таблици за търсене, използвани от търсачките на банки данни за ускоряване на резултатите от заявките. Индексът е препратка към информацията в таблица. Например, ако имената в книга с контакти не са подредени по азбучен ред, ще трябва да слезете всеки ред и да търсите във всяко име, преди да достигнете конкретния телефонен номер, който търсите. Индекс ускорява командите SELECT и фразите WHERE, като извършва въвеждане на данни в командите UPDATE и INSERT. Независимо дали индексите са вмъкнати или изтрити, няма влияние върху информацията, съдържаща се в таблицата. Индексите могат да бъдат специални по същия начин, по който ограничението UNIQUE помага да се избегнат записи на реплики в полето или набора от полета, за които съществува индексът.

Общ синтаксис

Следният общ синтаксис се използва за създаване на индекси.

>> СЪЗДАВАНЕ НА ИНДЕКС име на индекс НА име на таблица (име на колона);

За да започнете да работите върху индексите, отворете pgAdmin на Postgresql от лентата на приложението. Ще намерите опцията „Сървъри“, показана по-долу. Щракнете с десния бутон върху тази опция и я свържете с базата данни.

Както можете да видите, „Тест“ на базата данни е посочен в опцията „Бази данни“. Ако нямате такава, щракнете с десния бутон на мишката върху „Бази данни“, отидете до опцията „Създаване“ и назовете базата данни според вашите предпочитания.

Разширете опцията „Схеми“ и ще намерите опцията „Таблици“, изброена там. Ако нямате такъв, щракнете с десния бутон върху него, отидете до „Създаване“ и щракнете върху опцията „Таблица“, за да създадете нова таблица. Тъй като вече създадохме таблицата „emp“, можете да я видите в списъка.

Опитайте SELECT заявката в редактора на заявки, за да извлечете записите от таблицата 'emp', както е показано по-долу.

>> ИЗБЕРЕТЕ * ОТ публично.emp ORDER BY “id” ASC;

Следните данни ще бъдат в таблицата „emp“.

Създаване на индекси с една колона

Разширете таблицата „emp“, за да намерите различни категории, напр.ж., Колони, ограничения, индекси и др. Щракнете с десния бутон на мишката върху „Индекси“, отидете до опцията „Създаване“ и щракнете върху „Индекс“, за да създадете нов индекс.

Изградете индекс за дадената таблица 'emp' или дисплей със събития, като използвате диалоговия прозорец Index. Тук има два раздела: „Общи“ и „Определение“.„В раздела„ Общи “въведете конкретно заглавие за новия индекс в полето„ Име “. Изберете „табличното пространство“, под което ще се съхранява новият индекс, като използвате падащия списък до „Таблично пространство.„Както в областта„ Коментар “, правете индекс коментари тук. За да започнете този процес, отидете до раздела „Определение“.

Тук посочете „Метод за достъп“, като изберете типа индекс. След това, за да създадете своя индекс като „Уникален“, има няколко други опции, изброени там. В областта „Колони“ докоснете знака „+“ и добавете имената на колоните, които да се използват за индексиране. Както можете да видите, ние прилагаме индексиране само към колоната „Телефон“. За да започнете, изберете раздела SQL.

Разделът SQL показва SQL командата, която е създадена от вашите входове през диалога Index. Щракнете върху бутона „Запазване“, за да създадете индекса.

Отново отидете на опцията „Таблици“ и отидете до таблицата „emp“. Опреснете опцията „Индекси“ и ще намерите новосъздадения индекс „index_on_phone“, посочен в нея.

Сега ще изпълним командата EXPLAIN SELECT, за да проверим резултатите за индексите с клаузата WHERE. Това ще доведе до следния изход, който казва: 'Seq Scan on emp.„Може да се чудите защо това се е случило, докато използвате индекси.

Причина: Планировчикът на Postgres може да реши да няма индекс по различни причини. Стратегът взима най-добрите решения през повечето време, въпреки че причините не винаги са ясни. Добре е, ако в някои заявки се използва търсене с индекс, но не във всички. Вписванията, върнати от която и да е таблица, могат да варират в зависимост от фиксираните стойности, върнати от заявката. Тъй като това се случва, сканирането на последователност е почти винаги по-бързо от сканирането на индекс, което показва, че може би планиращият заявката е бил прав, като е определил, че цената на изпълнението на заявката по този начин е намалена.

Създайте няколко индекса на колони

За да създадете индекси с няколко колони, отворете обвивката на командния ред и обмислете следната таблица „студент“, за да започнете да работите върху индекси с множество колони.

>> ИЗБЕРЕТЕ * ОТ студент;

Напишете следната заявка CREATE INDEX в него. Тази заявка ще създаде индекс с име 'new_index' в колоните 'sname' и 'age' на таблицата 'student'.

>> CREATE INDEX new_index ON Student (sname, age);

Сега ще изброим свойствата и атрибутите на новосъздадения индекс 'new_index' с помощта на командата '\ d'. Както можете да видите на снимката, това е индекс тип btree, който е приложен към колоните „sname“ и „age“.

>> \ d нов_индекс;

Създайте УНИКАЛЕН индекс

За да създадете уникален индекс, приемете следната таблица 'emp'.

>> ИЗБЕРЕТЕ * ОТ emp;

Изпълнете заявката CREATE UNIQUE INDEX в черупката, последвана от името на индекса 'empind' в колоната 'name' на таблицата 'emp'. В изхода можете да видите, че уникалният индекс не може да бъде приложен към колона с дублирани стойности на „име“.

>> СЪЗДАВАНЕ на уникален ИНДЕКС empind ON emp (име);

Не забравяйте да приложите уникалния индекс само към колони, които не съдържат дубликати. За таблицата „emp“ може да приемете, че само колоната „id“ съдържа уникални стойности. Така че, ние ще приложим уникален индекс към него.

>> СЪЗДАВАНЕ на уникален ИНДЕКС empind ON emp (id);

Следват атрибутите на уникалния индекс.

>> \ d елиминиран;

Индекс на капки

Операторът DROP се използва за премахване на индекс от таблица.

>> ИНДЕКС НА ПАДАНЕ изтича;

Заключение

Докато индексите са предназначени да подобрят ефективността на базите данни, в някои случаи не е възможно да се използва индекс. Когато се използва индекс, трябва да се имат предвид следните правила:

Топ Oculus App Lab Games
Ако сте собственик на слушалки на Oculus, тогава трябва да знаете за странично зареждане. Sideloading е процесът на инсталиране на несъхранявано съдър...
Топ 10 игри за игра на Ubuntu
Платформата на Windows е една от доминиращите платформи за игри поради огромния процент игри, които се развиват днес, за да поддържат Windows. Може ли...
5 най-добри аркадни игри за Linux
В днешно време компютрите са сериозни машини, използвани за игри. Ако не можете да получите новия висок резултат, ще разберете какво имам предвид. В т...