Создание частичного индексирования таблицы для оптимизации поисковых запросов
Authors: Миронов А.И. , Мунерман В.И. 
Published: December 2024

В силу роста числа данных и роста разнообразия требований к их обработке, сейчас приходится отходить от обработки данных в момент запроса и все в большей мере перекладывать основную работу по его выполнению или выполнению основных его аспектов на заранее хранимые и подготовленные результаты. Во многом СУБД таким образом стараются решить проблемы производительности за счет увеличения расходов памяти, однако во многом необходимо задуматься уже об экономии последней, при этом желательно сохраняя результаты методов, основанных на подобном подходе – индексирование, хеширование, нейросетевые алгоритмы. В статье рассматривается метод повышения эффективности решения задач поиска для немалых таблиц. Предлагаемый метод основан на частичном индексировании, элементов, возле центров сближения и введения понятия метаданных для этих центров. Такая кластеризация с хранимыми метаданным для центров, около которых складываются очередные промежуточные узлы, позволяет снизить расходы памяти на индексацию, поскольку, во-первых, при таком подходе отсутствует необходимость вложенного индексирования, которые может привести к серьезным пространственным затратам. Во-вторых, такой подход может дать возможность использовать одно индексирование для разных комбинаций наличия столбцов в поисковом образе, не теряя при это большей части эффективности поиска при индексировании. Такое сочетание при правильном применении может позволить эффективно обрабатывать таблицы имеющие разные поисковые необходимости, по разным группам столбцов, для которых хранение индексации для каждого большого типа запроса или группы запросов может приводить закономерно к серьезным затратам на расход памяти а так же потерю производительности при работе с большими массивами памяти, которая тоже увеличивается далеко не линейно.
Due to the growing number of data and the growing variety of requirements for their processing, now we have to move away from data processing at the time of the request and increasingly shift the main work on its implementation or the implementation of its main aspects to pre-stored and prepared results. In many ways, DBMS thus try to solve performance problems by increasing memory consumption, but in many ways, it is necessary to think about saving the latter, while preferably preserving the results of methods based on a similar approach – indexing, hashing, neural network algorithms. The article discusses a method for improving the efficiency of solving search problems for large tables. The proposed method is based on partial indexing of elements near convergence centers and the introduction of the concept of metadata for these centers. Such clustering with stored metadata for the centers, near which the next intermediate nodes are formed, allows you to reduce the memory costs for indexing, because, firstly, with this approach there is no need for nested indexing, which can lead to serious spatial costs. Secondly, such an approach can make it possible to use one indexing for different combinations of the presence of columns in the search image, without losing most of the search efficiency during indexing. Such a combination, if used correctly, can make it possible to efficiently process tables with different search needs, for different groups of columns, for which storing indexing for each large type of query or group of queries can naturally lead to serious memory consumption costs as well as loss of performance when working with large arrays of memory, which also increases far from linearly.