powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Btree значения
14 сообщений из 14, страница 1 из 1
Btree значения
    #39815134
sergq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте.

Возможно ответ на вопрос прост как три копейки. Пните)
Перечитал про деревья в индексах.
Везде написано, что во всех типах нод хранятся ключи . Что логично.
Но везде же вроде как написано , что значения хранятся только в листьях.
Применительно к базам данных значение это rowid. И их может быть много.

А как же те ключи , которые находятся не в листовых нодах? Как быть в данном случае со значениями ?

И такого момента применительно к хранению индексов в базах данных недопонимают .

Практически везде принято, что одна нода дерева равна одной странице. За пределы страницы нода не выходит. Количество ключей уровня дерева равно максимальному количеству , которое влезет на страницу с учётом служебной информации. Тогда слегка непонятно где ж в данной схеме хранятся значения ключей . Те самые rowid
...
Рейтинг: 0 / 0
Btree значения
    #39815211
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sergq, судя по терминологии (rowid) это вопрос по Ораклу. Имеет смысл его перенести в профильный форум.
...
Рейтинг: 0 / 0
Btree значения
    #39815262
Фотография OoCc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sergqЗдравствуйте.

Возможно ответ на вопрос прост как три копейки. Пните)
Перечитал про деревья в индексах.
Везде написано, что во всех типах нод хранятся ключи . Что логично.
Но везде же вроде как написано , что значения хранятся только в листьях.
Применительно к базам данных значение это rowid. И их может быть много.

А как же те ключи , которые находятся не в листовых нодах? Как быть в данном случае со значениями ?

И такого момента применительно к хранению индексов в базах данных недопонимают .

Практически везде принято, что одна нода дерева равна одной странице. За пределы страницы нода не выходит. Количество ключей уровня дерева равно максимальному количеству , которое влезет на страницу с учётом служебной информации. Тогда слегка непонятно где ж в данной схеме хранятся значения ключей . Те самые rowid
Я думаю тебе стоит почитать про btree .
...
Рейтинг: 0 / 0
Btree значения
    #39815263
alex55555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sergqА как же те ключи , которые находятся не в листовых нодах? Как быть в данном случае со значениями ?
Гугли про двоичные деревья, для начала.

В узлах производится сравнение на больше/меньше, и в результате получается направление "углубления в дерево", поэтому в узлах не ключи, а информация для принятия решения при поиске.
...
Рейтинг: 0 / 0
Btree значения
    #39815342
sergq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex55555sergqА как же те ключи , которые находятся не в листовых нодах? Как быть в данном случае со значениями ?
Гугли про двоичные деревья, для начала.

В узлах производится сравнение на больше/меньше, и в результате получается направление "углубления в дерево", поэтому в узлах не ключи, а информация для принятия решения при поиске.

Это то я понимаю . Непонимаю одного.
Допустим страница вмещает 500 ключей . А у одного из ключей допустим 20 тысяч значений. Ключ то поместится на странице. Но куда значения складываются в самой базе. Надо ж куда то положить 20 тысяч значений rowid по данному ключу )
Вот соответственно и хочется понять где что postgre что другие базы будут хранить эти 20 тысяч значений ключа .
Вопрос да, не по программированию как таковому. Вопрос скорее по либо postgre либо по fb
...
Рейтинг: 0 / 0
Btree значения
    #39815346
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Значения хранятся в таблице.

В индексе (оно-же B+Tree) хранятся только пары (key,rowid).

Для Оракла существует дополнительная опция т.н. Index Organized Table (IOT), там в листовых вершинах
лежат значения но подобная реализация накладывает сходу ограничания на макс. длину строки такой
таблицы. Технически точно я не помню надо смотреть доки.

Как в Postgres - я не знаю т.к. не специалист но 99% что индексная структура будет подобной.
Она вообще почти во всех DBMS не сильно отличается.
...
Рейтинг: 0 / 0
Btree значения
    #39815349
Фотография OoCc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sergqalex55555пропущено...

Гугли про двоичные деревья, для начала.

В узлах производится сравнение на больше/меньше, и в результате получается направление "углубления в дерево", поэтому в узлах не ключи, а информация для принятия решения при поиске.

Это то я понимаю . Непонимаю одного.
Допустим страница вмещает 500 ключей . А у одного из ключей допустим 20 тысяч значений. Ключ то поместится на странице. Но куда значения складываются в самой базе. Надо ж куда то положить 20 тысяч значений rowid по данному ключу )
Вот соответственно и хочется понять где что postgre что другие базы будут хранить эти 20 тысяч значений ключа .
Вопрос да, не по программированию как таковому. Вопрос скорее по либо postgre либо по fb
цепочка страничек. так же как и если бы одно значение не помешалось на страничку.
...
Рейтинг: 0 / 0
Btree значения
    #39815794
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sergqДопустим страница вмещает 500 ключей
Если всё множество rowid для одного ключа не умещается на одну страницу - его хвост выпихнут на другие страницы с этим же ключом.
...
Рейтинг: 0 / 0
Btree значения
    #39815859
Partisan M
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex55555Гугли про двоичные деревья, для начала.

btree не является двоичным деревом. Неохота комментировать всё, что тут понаписали. Но автору вопроса действительно быстрее было бы найти описание структуры btree поиском в google.
...
Рейтинг: 0 / 0
Btree значения
    #39815862
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кнут
Том 3. Сортировка и поиск
https://www.ozon.ru/context/detail/id/2527036/
...
Рейтинг: 0 / 0
Btree значения
    #39815884
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы оба правы. В данном случае автор спрашивает по блочно-организованной структуре данных
https://en.wikipedia.org/wiki/B _tree которая используется в БД. В качестве пруфа, он указывает rowid.
Это чисто базячная терминология.

Но бинарное дерево https://en.wikipedia.org/wiki/Binary_tree это теоретический прародитель Дерева с плюсом+ N-го
порядка если соптимизировать хранение бинарных нод в блок но при этом сохранить исходящие связи.
...
Рейтинг: 0 / 0
Btree значения
    #39816611
alex55555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Partisan Mbtree не является двоичным деревом.
Двоичное есть частный случай b. Ну и принцип идентичный.
...
Рейтинг: 0 / 0
Btree значения
    #39816623
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне кажется идея смешивать в одну кучу бинарные деревьев и b-tree - не из лучших
Больше путаницы, чем смысла
Дополнительную и большую путаницу вносить сокрашение. Т.к. предполагаешь, что b-tree это сокрашение от binary, а на самом деле, это _отдельная_ структура.

Т.ч. проще считать, что B-Tree это - B-Tree, а бинарное дерево - это бинарное дерево. А совпадение в первой буквы - это происки врагов человечества, что бы всех запутать.

IMHO & AFAIK
...
Рейтинг: 0 / 0
Btree значения
    #39816878
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev,

обычно говорят что
авторA red/black tree is more or less equivalent to a 2-3-4 tree, which is just a type of B-tree
и не будет никакой путаницы
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Btree значения
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]