BRIN, GIN, B‑Tree: полный гайд по индексам PostgreSQL для highload

Индексы есть, а запросы всё равно тормозят? Или наоборот — индексов слишком много, и они только увеличивают нагрузку на запись? Многие разработчики и администраторы баз данных попадают в ловушку: ставят B-Tree на всё подряд и надеются на лучшее. Но в highload-системах это может привести к катастрофе. В этой статье я делюсь реальным опытом работы с PostgreSQL. Статья будет полезна разработчикам, архитекторам и администраторам, которые хотят не просто «поставить индекс», а понять, как работает PostgreSQL под капотом и как проектировать базы данных, выдерживающие миллионы запросов в секунду.

https://habr.com/ru/companies/otus/articles/1008372/

#архитектура #PostgreSQL #индексы #оптимизация_запросов #highload #базы_данных #BTree #BRIN

BRIN, GIN, B‑Tree: полный гайд по индексам PostgreSQL для highload

Всем привет, меня зовут Сергей Прощаев , и в этой статье я расскажу про индексы в PostgreSQL. Точнее, про то, как из блага они превращаются в проклятие, когда их...

Хабр

[Перевод] Нетипичные оптимизации в PostgreSQL, или Креативное ускорение запросов

Когда речь заходит об оптимизации базы данных, разработчики обычно перечисляют привычный набор приёмов: слегка переписать запрос, накинуть индекс на колонку, денормализовать, сделать analyze, vacuum, cluster, и так по кругу. Классические техники, конечно, работают, но иногда креативный подход даёт гораздо больше. В этой статье Haki Benita показывает нетипичные техники оптимизации в PostgreSQL.

https://habr.com/ru/companies/postgrespro/articles/1001194/?utm_source=habrahabr&utm_medium=rss&utm_campaign=1001194

#optimisation #hash #btree #indexes #postgresql #администрирование #администрирование_бд #индекс

Нетипичные оптимизации в PostgreSQL, или Креативное ускорение запросов

Когда речь заходит об оптимизации базы данных, разработчики обычно перечисляют привычный набор приёмов: слегка переписать запрос, накинуть индекс на колонку, денормализовать, сделать analyze, vacuum,...

Хабр

[Перевод] Нетипичные оптимизации в PostgreSQL, или Креативное ускорение запросов

Когда речь заходит об оптимизации базы данных, разработчики обычно перечисляют привычный набор приёмов: слегка переписать запрос, накинуть индекс на колонку, денормализовать, сделать analyze, vacuum, cluster, и так по кругу. Классические техники, конечно, работают, но иногда креативный подход даёт гораздо больше. В этой статье Haki Benita показывает нетипичные техники оптимизации в PostgreSQL.

https://habr.com/ru/companies/postgrespro/articles/1001194/

#optimisation #hash #btree #indexes #postgresql #администрирование #администрирование_бд #индекс

Нетипичные оптимизации в PostgreSQL, или Креативное ускорение запросов

Когда речь заходит об оптимизации базы данных, разработчики обычно перечисляют привычный набор приёмов: слегка переписать запрос, накинуть индекс на колонку, денормализовать, сделать analyze, vacuum,...

Хабр

Как не получилось сделать PostgreSQL лучше (и почему это нормально)

Недавно я получил статус Major Contributor в проекте PostgreSQL. Это довольно радостное для меня событие и интересное, поэтому коллеги попросили написать статью об этом. А чтобы я не сомневался — заботливо составили список достижений за меня. Получилось замечательно, но публиковать от своего имени статью вида «как я крут» я не хочу. Я совсем не против про это говорить, и из каждого утюга вещаю про разные технологии, сделанные моей командой или вот прям вообще мной. Но только в контексте «как использовать эти технологии», либо в узком кругу или личной беседе. Я решил написать другую статью: что у меня не получилось. Писал довольно спешно, поэтому, возможно, местами будет понятно только специалистам. Не расстраивайтесь, если что‑то неясно и пришлось гуглить. А вот если всё понятно — возможно, стоит меньше смотреть в монитор и чаще трогать траву. Инкрементальное улучшение любой популярной технологии зачастую имеет негативные последствия. И в большинстве случаев предлагаемых в PostgreSQL доработок — вред превышает пользу. Построить что‑то новое, ничего не сломав, бывает трудно и в чистом поле, а ядро PostgreSQL в этом смысле — лабиринт с граблями.

https://habr.com/ru/companies/yandex/articles/964778/?utm_source=habrahabr&utm_medium=rss&utm_campaign=964778

#postgresql #wal #btree #btree_индекс #синхронная_репликация #lz4 #pglz

Как не получилось сделать PostgreSQL лучше (и почему это нормально)

Недавно я получил статус Major Contributor в проекте PostgreSQL. Это довольно радостное для меня событие и интересное, поэтому коллеги попросили написать статью об этом. А чтобы я...

Хабр

Как не получилось сделать PostgreSQL лучше (и почему это нормально)

Недавно я получил статус Major Contributor в проекте PostgreSQL. Это довольно радостное для меня событие и интересное, поэтому коллеги попросили написать статью об этом. А чтобы я не сомневался — заботливо составили список достижений за меня. Получилось замечательно, но публиковать от своего имени статью вида «как я крут» я не хочу. Я совсем не против про это говорить, и из каждого утюга вещаю про разные технологии, сделанные моей командой или вот прям вообще мной. Но только в контексте «как использовать эти технологии», либо в узком кругу или личной беседе. Я решил написать другую статью: что у меня не получилось. Писал довольно спешно, поэтому, возможно, местами будет понятно только специалистам. Не расстраивайтесь, если что‑то неясно и пришлось гуглить. А вот если всё понятно — возможно, стоит меньше смотреть в монитор и чаще трогать траву. Инкрементальное улучшение любой популярной технологии зачастую имеет негативные последствия. И в большинстве случаев предлагаемых в PostgreSQL доработок — вред превышает пользу. Построить что‑то новое, ничего не сломав, бывает трудно и в чистом поле, а ядро PostgreSQL в этом смысле — лабиринт с граблями.

https://habr.com/ru/companies/yandex/articles/964778/

#postgresql #wal #btree #btree_индекс #синхронная_репликация #lz4 #pglz

Как не получилось сделать PostgreSQL лучше (и почему это нормально)

Недавно я получил статус Major Contributor в проекте PostgreSQL. Это довольно радостное для меня событие и интересное, поэтому коллеги попросили написать статью об этом. А чтобы я...

Хабр

Kent Beck의 4주 실험: AI 코딩이 ‘바이브’를 넘어서는 법

TDD 창시자 Kent Beck이 4주간 AI와 함께 production-ready 라이브러리를 만들며 발견한 '증강 코딩' 방법론. 바이브 코딩을 넘어선 실전 개발 경험을 소개합니다.

https://aisparkup.com/posts/6155

The Search Problem: Why Your Computer Finds Things Faster Than You Do - Imposter

I've been messing around with trees in Hare lately so I started with a standard BTree. It is not fully tested yet, but I will release it when I feel it is ready.

I will probably move to a B+Tree after that.

#DataStructures #BTree #SystemsProgramming #HareLang
OrioleDB's #Bridged Indexes: because who doesn't love yet another revolutionary #database feature that promises to fix problems nobody knew existed? 🤔🎉 Let's all pretend this complex #tech jargon will change our lives while we secretly Google "Btree" like it's a trendy new diet. 🍽️📚
https://www.orioledb.com/blog/orioledb-bridged-indexes #OrioleDB #Indexes #innovation #Btree #databasefeatures #HackerNews #ngated
Bridged Indexes in OrioleDB: architecture, internals & everyday use? | OrioleDB

Since version beta10 OrioleDB supports building indexes other than B-tree. Bridged indexes are meant to support these indexes on OrioleDB tables.

Правильный порядок колонок в B-tree индексах PostgreSQL или правило ESR

Когда в проекте используется составной B-tree индекс, важно не просто "создать индекс", а сделать это правильно — иначе запросы могут не только не ускориться, но и начать работать медленнее. Возникает логичный вопрос: как выбрать порядок колонок, чтобы индекс действительно работал эффективно? Брутфорсом? По интуиции? По селективности? В этой статье я расскажу, как подходить к построению составных индексов в PostgreSQL, на что реально влияет порядок колонок. Также разберём простое правило ESR, которое помогает упростить выбор и получать стабильный прирост производительности на всех стендах.

https://habr.com/ru/articles/911688/

#postgresql #Btree #составной_индекс #многоколонковый_индекс #ESR_правило #оптимизация_запросов #селективность #план_выполнения #explain_analyze #индексный_скан

Правильный порядок колонок в B-tree индексах PostgreSQL или правило ESR

Когда в проекте используется составной B-tree индекс, важно не просто "создать индекс", а сделать это правильно — иначе запросы могут не только не ускориться, но и начать работать медленнее. Возникает...

Хабр