Милушков В.И., Гатчин Ю.А. —
Использование бинарного поиска для оптимизации запроса на выборку данных
// Кибернетика и программирование. – 2012. – № 2.
– С. 1 - 9.
DOI: 10.7256/2306-4196.2012.2.13867
URL: https://e-notabene.ru/kp/article_13867.html
Читать статью
Аннотация: С ростом популярности СУБД его поддержка неизбежно начинает требовать всё больших и больших ресурсов. Первое время с нагрузкой можно (и, несомненно, нужно) бороться путём оптимизации алгоритмов и/или архитектуры самого приложения. Однако, что делать, если всё, что можно было оптимизировать, уже оптимизировано, а приложение всё равно не справляется с нагрузкой? В рамках этой статьи приведены методы и способы использования бинарного поиска для оптимизации запроса на выборку данных. Приведен обзор php+MySQL и решена задача переноса условия с полей СУБД без индексов на первичные ключи, что значительно ускоряет работу запроса и самой СУБД. Предложено решение, значительно ускоряющее поиск нужного элемента за счёт сокращения диапазонов поиска. Но при этом жертвуем некоторой точностью вычислений. Для статистики это не критично, если пару элементов из миллионов не будут учтены. В противном случае, необходимо сделать эпсилон нулевым и завершать поиск только после достижения последнего уровня дерева.
Abstract: With the increasing popularity of DBMS its use inevitably begins to demand more and more resources. The first time is possible (and, of course, necessary) to lower the load through optimization of algorithms and / or architecture of the application. However, what if anything that can be optimized is already optimized, and the application still cannot cope with the load? In this article the methods and ways to use binary search to optimize the query to retrieve data are reviewed. Authors giv an overview of php + MySQL and solved the problem of the transfering the queue from fields without indexes to tables with primary keys, which significantly speeds up the query and the database itself. Proposed solution greatly accelerates the search for the desired item by reducing the search range but at the same time sacrificing some accuracy computations. For statistical reasons it is not critical if a few elements of millions will not be taken into account. Otherwise, it is necessary to make and complete epsilon zero search only after reaching the last level of the tree.