Struchkov Mark
7ef1ee250f
All checks were successful
continuous-integration/drone/push Build is passing
54 lines
4.3 KiB
Markdown
54 lines
4.3 KiB
Markdown
---
|
||
aliases: []
|
||
tags:
|
||
- maturity/🌱
|
||
date: 2024-03-31
|
||
---
|
||
[[../../../meta/zero/00 PostgreSQL|PostgreSQL]] поддерживает несколько типов [[../Индекс базы данных|индексов]], каждый из которых предназначен для определённых задач. Выбор типа индекса зависит от структуры данных и характера запросов. В этом разделе приведены основные типы индексов, их особенности и случаи, когда их использование наиболее эффективно.
|
||
|
||
**Особенности:**
|
||
- Для **первичного ключа** индекс создается автоматически.
|
||
- Можно **отключить автоматическое обновление индекса** и настроить обновление вручную.
|
||
- **Распухание индексов** ([[Раздутие таблиц|bloat]]) — это проблема увеличения размера индексов со временем, требующая переиндексации.
|
||
|
||
- [[Создание индекса в PostgreSQL]]
|
||
- [[../Частичный индекс|Частичный индекс]]
|
||
- [[Составной индекс в PostgreSQL]]
|
||
|
||
**Типы индексов:**
|
||
- [[B-tree индекс в PostgreSQL|B-tree индекс]]
|
||
- [[Hash индекс в PostgreSQL|Hash индекс]]
|
||
- [[Gist индекс в PostgreSQL|Gist индекс]]
|
||
- [[SP-GiST индекс в PostgreSQL|SP-GiST индекс]]
|
||
- [[GIN индекс в PostgreSQL|GIN индекс]]
|
||
- [[BRIN индекс в PostgreSQL|BRIN индекс]]
|
||
|
||
**Влияние обновления строки на индекс**
|
||
- **Обновление индексированной колонки.** По факту мы добавляем новую запись в индекс, а старую забываем. Старая остается мертвым грузом ([[Раздутие таблиц|bloat]]), индекс распухает, его нужно убрать - [[Autovacuum]].
|
||
- **Обновление не индексированной колонки.** Если строка в таблице остается на той же [[../DB page|странице бд]], то есть было место на странице, то индекс не меняется. Если строка не помещается, то добавляется новая запись в индекс, а старая остается мертвым грузом ([[Раздутие таблиц|bloat]]), индекс распухает, его нужно убрать vacuum.
|
||
***
|
||
## Мета информация
|
||
**Область**:: [[../../../meta/zero/00 PostgreSQL|00 PostgreSQL]]
|
||
**Родитель**:: [[../Индекс базы данных|Индекс базы данных]]
|
||
**Источник**::
|
||
**Автор**::
|
||
**Создана**:: [[2024-03-31]]
|
||
### Дополнительные материалы
|
||
- [Доклад. Индексы в PostgreSQL. Как понять, что создавать](../../../source/lecture/Доклад.%20Индексы%20в%20PostgreSQL.%20Как%20понять,%20что%20создавать.md)
|
||
- [009. B-деревья. Система непересекающихся множеств - М. А. Бабенко - YouTube](https://www.youtube.com/watch?v=KFcpDTpoixo)
|
||
- [Индексы в PostgreSQL — 1 / Хабр](https://habr.com/ru/companies/postgrespro/articles/326096/)
|
||
- [Introduction of B+ Tree - GeeksforGeeks](https://www.geeksforgeeks.org/introduction-of-b-tree/)
|
||
### Дочерние заметки
|
||
<!-- QueryToSerialize: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->
|
||
<!-- SerializedQuery: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->
|
||
- [[B-tree индекс в PostgreSQL]]
|
||
- [[BRIN индекс в PostgreSQL]]
|
||
- [[GIN индекс в PostgreSQL]]
|
||
- [[Gist индекс в PostgreSQL]]
|
||
- [[Hash индекс в PostgreSQL]]
|
||
- [[SP-GiST индекс в PostgreSQL]]
|
||
- [[Создание индекса в PostgreSQL]]
|
||
- [[Составной индекс в PostgreSQL]]
|
||
- [[Частичный индекс]]
|
||
<!-- SerializedQuery END -->
|