Global Tag Network Программное обеспечение для приложений и периферии

Технологии Raima

Индексация базы

Выбор методов индексации и как их использовать с помощью RDM

В настоящее время RDM поддерживает 4 различных типа индексов, которые пользователь может выбрать для использования со своей базой данных. Эти типы: B-Tree, R-Tree, Hash и AVL. У каждого из них есть свои идеальные варианты использования, и они будут подробно описаны ниже. Пользователь может опробовать каждый тип в своей собственной базе данных и найти идеальную производительность. 

B-Tree

Реализация RDM B-Tree представляет собой некластеризованное внешнее дерево, отсортированное по значениям столбцов, указанных в определении индекса. В узле b-tree имеется запись для каждой строки таблицы, из которой получен индекс. Узлы идентифицируются по их идентификатору объекта, называемому для узловых объектов идентификатором узла. Это позволяет реализовать эффективную реализацию для баз данных, использующих либо движок на диске, либо движок в памяти. В обоих механизмах ссылки на id узла будут искаться через индекс id для ящика, в котором хранится b-tree. В механизме на диске id-индекс будет содержать смещение и размер узла в файле пакета. В механизме in-memory индекс id будет содержать указатель на узел. В реализации RDM b-tree используется размер узла в 32 элемента; однако на сервере файлов транзакций будут храниться только используемые элементы. Узлы RDM b-tree никогда не обновляются; вместо этого создается новый узел, а индекс id обновляется, чтобы указать на местоположение нового узла. Старый узел будет доступен для повторного использования в последующих транзакциях. 

R-tree (пространственное индексирование)

RDM 14.1 добавил алгоритм индексации, разработанный специально для геопространственных данных, который называется R-Tree. Это сбалансированное дерево поиска, которое упорядочивает данные по страницам и предназначено для группировки близлежащих объектов и последующего представления их на следующем уровне дерева. Это идеальный тип индекса, когда пользователям требуется быстрое извлечение многомерных данных в ограничивающей рамке. Обычным реальным применением R-Tree может быть хранение пространственных объектов, таких как расположение ресторанов или многоугольников, из которых состоят типичные карты: улицы, здания, очертания озер, береговые линии и т.д., а затем быстрый поиск ответов на такие запросы, как «найти все музеи в пределах 2 км от моего текущего местоположения», «найти все сегменты дорог в пределах 2 км от моего местоположения» (для отображения их в навигационной системе) или «найти ближайшую заправку» (без прокладки маршрута).

Хэш

Реализация хэша в RDM 14.1 использует расширяемый алгоритм хэширования. Расширяемый алгоритм хэширования не требует, чтобы разработчик угадывал мощность индекса во время разработки. Это важно для механизма хранения в памяти, так как нет необходимости резервировать память для набора сегментов, которые могут никогда не использоваться. Вместо этого по мере увеличения количества сегментов в хэше размер каталога будет увеличиваться. Текущая реализация допускает только уникальные ключи и упорядочивает данные на основе столбцов с ключами (данные организованы на основе хэша этих столбцов). Это означает, что хэш можно использовать для поиска, но нельзя использовать для последовательного доступа или диапазонов.

AVL

В RDM 14.1 также добавлен алгоритм индексации, специально предназначенный для использования в механизме хранения в памяти, который называется AVL-дерево. AVL — это самобалансирующееся двоичное дерево, которое в RDM реализовано внутри строки, а не снаружи. В AVL нет дублирования данных, поскольку, в отличие от B-Tree, внешние узлы, содержащие копии индексированных столбцов, не поддерживаются. AVL — это бинарное дерево, а значит, глубина дерева будет намного больше, чем у B- Tree. По этой причине индекс AVL лучше подходит для механизма хранения в памяти, использующего формат расширенных строк, чем для механизма на диске, использующего формат упакованных строк. Формат упакованных строк содержит реализацию индекса AVL, но он предназначен в основном для сохранения образа в памяти на диск и не предназначен для общего использования в таблицах на диске. 

AVL можно использовать для любых операций, для которых используется индекс b- Tree. AVL поддерживает поиск, диапазоны, сканирование, а также дублирующие и уникальные ограничения. Оптимизатор SQL будет использовать AVL так же, как и B- Tree, но будет использовать немного другой вес, основанный на различиях в реализации между B- Tree и AVL. 

Заполните форму >>>

или отправьте сообщение

укажите  удобное время для  консультации 

Ваш продукт в итоге получается дешевле на 40-%  в сравнении с аналогами.

ERP-система как программный продукт стоит сравнительно дорого, независимо от разработчика. Для успешного внедрения потребуется сотрудничество с опытными специалистами. И если бюджета хватает только на оплату программы, то в результате «коробка» оказывается невостребованной, то есть , компания впустую тратит значительную сумму. Рассчитывайте свои возможности заранее.


Консультация