Skip to content
2 / 15

Какой индСкс ΠΏΠΎΠ΄ ΠΊΠ°ΠΊΠΎΠΉ запрос: B-tree, GIN, GiST, BRIN, hash

B-tree β€” рабочая лошадка: равСнство, Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρ‹, сортировка, прСфиксный поиск ΠΏΠΎ строкС; ΠΏΠΎΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ 90% Π·Π°Π΄Π°Ρ‡ ΠΈ СдинствСнный ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ORDER BY Π±Π΅Π· сортировки. GIN β€” для Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠ½ΠΎΠ³ΠΎ элСмСнтов: массивы, JSONB, полнотСкстовый поиск, Ρ‚Ρ€ΠΈΠ³Ρ€Π°ΠΌΠΌΡ‹ для LIKE '%тСкст%'; быстрый Π½Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅, Π΄ΠΎΡ€ΠΎΠ³ΠΎΠΉ Π½Π° запись, частично компСнсируСтся ΠΎΡ‚Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ Ρ‡Π΅Ρ€Π΅Π· fastupdate. GiST β€” для Π³Π΅ΠΎΠΌΠ΅Ρ‚Ρ€ΠΈΠΈ, Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² ΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ; ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ поиск Π±Π»ΠΈΠΆΠ°ΠΉΡˆΠΈΡ… сосСдСй. BRIN β€” ΠΊΡ€ΠΎΡˆΠ΅Ρ‡Π½Ρ‹ΠΉ индСкс для Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Ρ‚Π°Π±Π»ΠΈΡ†, Π³Π΄Π΅ физичСский порядок строк совпадаСт с порядком Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ: Π»ΠΎΠ³ΠΈ ΠΈ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ; Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΊΠΈΠ»ΠΎΠ±Π°ΠΉΡ‚Ρ‹ вмСсто Π³ΠΈΠ³Π°Π±Π°ΠΉΡ‚ΠΎΠ², Π½ΠΎ бСсполСзСн Π½Π° нСупорядочСнных Π΄Π°Π½Π½Ρ‹Ρ…. Hash β€” Ρ‚ΠΎΠ»ΡŒΠΊΠΎ равСнство, начиная с PostgreSQL 10 ТурналируСтся ΠΈ ΠΏΠ΅Ρ€Π΅ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅, Π½ΠΎ Π²Ρ‹ΠΈΠ³Ρ€Ρ‹Π²Π°Π΅Ρ‚ Ρƒ B-tree Ρ€Π΅Π΄ΠΊΠΎ. Π’Ρ‹Π±ΠΎΡ€ Π΄ΠΈΠΊΡ‚ΡƒΠ΅Ρ‚ Π½Π΅ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…, Π° Ρ„ΠΎΡ€ΠΌΠ° ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚Π° Π² запросС.

Какой индСкс ΠΏΠΎΠ΄ ΠΊΠ°ΠΊΠΎΠΉ запрос: B-tree, GIN, GiST, BRIN, hash | JScriptiser