|
Как хранится индекс
|
|||
---|---|---|---|
#18+
Здравствуйте. Как всегда туплю. Собственно вопрос. А как хранятся ключи и значения на страницах в базе? Физически Еще с ключами соображу. А вот со значениями (rdb$db_key) не допереть) вернее есть соображения... Собственно при создании индекса могут быть два варианта. Либо все ключи уникальные. Тогда каждому ключу будет соответствовать один rdb$db_key. Но может быть и для одного ключа допустим 1000, 10000 rdb$db_key. Как они в этих случаях будут храниться на странице? И по пути такой вопрос. А в не листовых страницах индекса в FB хранятся значения? Или же только в листовых узлах? Вроде как в постгре значения (номера строк) хранятся только в листовых узлах, те на последнем уровне дерева. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2019, 21:14 |
|
Как хранится индекс
|
|||
---|---|---|---|
#18+
Очень упрощённо: на индексной странице хранятся пары {ключ, значение}. Ключ хранится как - набор флагов, описывающих что именно идёт дальше, - длина префикса - сколько первых байт этого ключа совпадает с началом предыдущего ключа - длина остальных данных ключа - байты с данными ключа Для ключей-дубликатов получим: длина данных == 0, сами данные не хранятся Значение есть либо указатель на страницу вниз (для не листовых страниц индекса), либо физ номер записи в таблице (для листьев) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2019, 01:05 |
|
Как хранится индекс
|
|||
---|---|---|---|
#18+
hvladЗначение есть либо указатель на страницу вниз (для не листовых страниц индекса), либо физ номер записи в таблице (для листьев)Начиная с ODS 11 стало чуть иначе: Значение есть физ номер записи в таблице (для всех уровней дерева) и указатель на страницу вниз (для не листовых страниц индекса). ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2019, 01:09 |
|
|
start [/forum/topic.php?fid=40&fpage=23&tid=1560701]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
40ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 136ms |
0 / 0 |