Базы данных: дополнительные вопросы об индексах (B-Tree) - PullRequest
0 голосов
/ 30 июня 2011

Я изучал индексы, и есть некоторые вопросы, которые меня беспокоят и которые я считаю важными.

Если вы можете помочь или обратиться к источникам, пожалуйста, не стесняйтесь делать это.

Q1: Индексы B-дерева могут обеспечить быстрый доступ к определенным строкам таблицы. Рассматривая OLTP-систему с множеством одновременных обращений, как «Чтение», так и «Запись», считаете ли вы недостатком наличие множества индексов B-дерева в этой системе? Почему?

Q2: Почему индексы B-Tree не полностью заняты (как правило, только 75%, если я не ошибаюсь)?

1 Ответ

1 голос
/ 03 августа 2011

В1. У меня нет опыта администрирования больших систем индексирования на практике, но типичные недостатки многопроцессорной среды связаны с наличием в системе нескольких индексов B-дерева - стоимость переключения контекста, аннулирования и очистки кэша, плохое планирование ввода-выводаи список увеличивается.С другой стороны, IO - это то, что по своей природе должно быть неблокирующим для максимального использования ресурсов, и это трудно сделать без какого-либо параллелизма, даже если это делается совместным образом.(Например, некоторые люди рекомендуют системы, основанные на событиях.) Кроме того, вам понадобится несколько структур индексов для многих практических приложений, особенно если вы смотрите на OLTP.Самое важное здесь - это хорошее планирование ввода-вывода, шаблоны доступа и кэширование данных в зависимости от указанных шаблонов доступа.

Q2: поскольку разделение и повторная балансировка узлов являются дорогостоящими.Наивная методология для скорости "только расколота с их полными".Учитывая это, есть две крайности: узел был просто разделен и наполовину заполнен, или узел заполнен, так что это будет в следующий раз.«Среднее» между случаями (50% и 100%) составляет 75%.Да, это несколько плохая логика с точки зрения математики, но она обнажает основную причину появления цифры 75%.

...