HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-03-10
1 <p>Теги: субд, postgresql, базы данных, бд, индексы, постгрес</p>
1 <p>Теги: субд, postgresql, базы данных, бд, индексы, постгрес</p>
2 <p><strong>PostgreSQL</strong>- система, которая была унаследована от команды Майкла Стоунбрейкера и его учеников и аспирантов в Массачусетском технологическом институте. Многие решения, заложенные в PostgreSQL, опередили время и были очень удачными, что и привело к успеху разработки.</p>
2 <p><strong>PostgreSQL</strong>- система, которая была унаследована от команды Майкла Стоунбрейкера и его учеников и аспирантов в Массачусетском технологическом институте. Многие решения, заложенные в PostgreSQL, опередили время и были очень удачными, что и привело к успеху разработки.</p>
3 <p>Поговорим об особенностях индексов в PostgreSQL и тем, что их отличает от других РСУБД. Речь пойдёт о стандартных для реляционных СУБД<strong>B-tree индексах</strong>: 1. Индексы, строго говоря, являются<strong>B+ деревом</strong>, что даёт возможность прочитать страницы одного уровня, не возвращаясь каждый раз по иерархии к корневому узлу. 2. Индексы в СУБД PostgreSQL<strong>не содержат ссылку на кластерный индекс или первичный ключ</strong>, как в некоторых других (MySQL, MS SQL Server). Вместо этого, индекс в PostgreSQL содержит<strong>указатель на строку таблицы на диске (TID)</strong>. 3. Ещё одно отличие индексов в PostgreSQL:<strong>индекс не содержит информации об актуальной версии</strong>, поэтому нет возможности вычитать все данные и вернуть пользователю из индекса, даже если в SELECT выбираются только поля, входящие в индекс. Всё равно необходимо обращение к основной таблице, чтобы получить информацию об актуальных строках и вернуть их в результатах запроса.</p>
3 <p>Поговорим об особенностях индексов в PostgreSQL и тем, что их отличает от других РСУБД. Речь пойдёт о стандартных для реляционных СУБД<strong>B-tree индексах</strong>: 1. Индексы, строго говоря, являются<strong>B+ деревом</strong>, что даёт возможность прочитать страницы одного уровня, не возвращаясь каждый раз по иерархии к корневому узлу. 2. Индексы в СУБД PostgreSQL<strong>не содержат ссылку на кластерный индекс или первичный ключ</strong>, как в некоторых других (MySQL, MS SQL Server). Вместо этого, индекс в PostgreSQL содержит<strong>указатель на строку таблицы на диске (TID)</strong>. 3. Ещё одно отличие индексов в PostgreSQL:<strong>индекс не содержит информации об актуальной версии</strong>, поэтому нет возможности вычитать все данные и вернуть пользователю из индекса, даже если в SELECT выбираются только поля, входящие в индекс. Всё равно необходимо обращение к основной таблице, чтобы получить информацию об актуальных строках и вернуть их в результатах запроса.</p>
4 <p>Эти особенности важно учитывать при планировании и создании индексов для БД, а также анализировать, насколько индекс используется и используется ли вообще, ведь иногда оптимизатор имеет своё мнение, которое может сильно отличаться от замысла автора запроса и индекса.</p>
4 <p>Эти особенности важно учитывать при планировании и создании индексов для БД, а также анализировать, насколько индекс используется и используется ли вообще, ведь иногда оптимизатор имеет своё мнение, которое может сильно отличаться от замысла автора запроса и индекса.</p>
5 <p>Подробнее можно почитать здесь: 1.<a>Цикл Егора Рогова на Хабре</a>. 2.<a>Laurenz Albe Get rid of your unused indexes</a>.</p>
5 <p>Подробнее можно почитать здесь: 1.<a>Цикл Егора Рогова на Хабре</a>. 2.<a>Laurenz Albe Get rid of your unused indexes</a>.</p>
6  
6