В мире СУБД общепринятая догма гласит: «Индексы ускоряют запросы». Но что, если в погоне за производительностью мы создали себе проблему? В этой статье на практике исследуется парадоксальный сценарий, при котором удаление первичного ключа у таблицы pgbench_branch и последующее увеличение стоимости запроса привели к впечатляющему росту общей производительности PostgreSQL под нагрузкой. СУБД не так просты, как кажется. ℹ️Новый инструмент с открытым исходным кодом для статистического анализа, нагрузочного тестирования и построения отчетов доступен в репозиториях GitFlic и GitHub Продолжение экспериментов с pg_expecto, начатых в предыдущей работе: Оценить удаление ограничения первичного ключа в таблице на производительность СУБД в ходе нагрузочного тестирования. Тестовый запрос select br.bbalance from pgbench_branches br join pgbench_accounts acc on (br.bid = acc.bid ) where acc.aid = 1000 ; План выполнения запроса Nested Loop (cost=0.84..5.28 rows=1 width=4) -> Index Scan using pgbench
✔️Обратная сторона индекса: когда первичный ключ становится узким местом
22 октября22 окт
7
3 мин