Когда PostgreSQL необходимо прочитать блок 8K, он находит первый доступный чистый буфер с счетчиком использования 0 и загружает в него блок. Таким образом, блоки (индекс или таблица) находятся в общих буферах случайным образом.
Это не должно иметь значения, поскольку в наши дни память - это произвольный доступ.
Согласно вашему комментарию вы действительно хотите знать, на что влияет команда CLUSTER
:
CLUSTER
переписывает таблицу так, чтобы строки физически упорядочивались на диске в логическом порядке индекса. В пределах одного блока это упорядочение будет сохранено, когда данные находятся в общих буферах (поскольку блок копируется в память как есть). Но разные блоки таблиц не будут помещаться в общие буферы близко друг к другу или в каком-либо определенном порядке.
Идея состоит в том, чтобы убедиться, что при сканировании индекса, который обращается к более чем одной строке, нужно только прочитать как можно меньше табличных блоков с диска, и те, которые расположены в последовательном порядке. В памяти не имеет значения, будут ли блоки считываться последовательно или нет.