Дисководы считывают данные блоками, которые называются кластерами. Раз-
мер кластера обычно составляет 512 или 1024 байта, или другое число байтов, рав-
ное степени двойки.
Вы можете воспользоваться этим, создав сегменты, размер которых равен це-
лому числу кластеров. Затем следует поместить в этот сегмент максимальное ко-
личество записей или ключей. Предположим, что вы решили создавать сегменты
размером приблизительно по 2048 байт. Если вы строите Б+дерево с 80-байтовы-
ми ключами, вы можете поместить до 24 ключей плюс 25 указателей (если указа-
тель представляет собой 4-байтовое число типа Longint) в каждый сегмент. Вы
можете создать Б+дерево 12-го порядка с сегментами, которые объявляются в сле-
дующем коде:
const
ORDER = 12;
KEYS_PER_NODE = 2*ORDER;
type
String80 = String[80];
TBtreeNode = record
Key : array [1..KEYS_PER_NODE] of String80; // Ключи.
Child : array [0..KEYS_PER_NODE] of Longint; // Указатели на
// узлы.
end;
|