Предположим, что существует таблица T с столбцом C, индексированным B-деревом, и заданной константой k. Предположим, результат следующего запроса будет п:logarithmic time count (*) запрос диапазона в любой СУБД
select count(*) from T where C > k;
Я попробовал такой запрос в MySQL (InnoDB), на колонке с C индексированного В-дерева, и поняли, чем больше значение N, тем медленнее запрос. На большой таблице (ГБ) мне даже придется ждать минут. Итак, я предполагаю, что временная сложность линейна относительно n. Но я знаю, хранит ли агрегированную информацию о внутренних узлах B-Tree, которые могут выполняться в логарифмическом времени по отношению к размеру таблицы.
Можно ли предложить любую СУБД с реализованным логарифмическим решением или любой трюк, чтобы сократить время запроса в MySQL?
спасибо, но не ответ на мой вопрос. –
Единственным способом индексирования по логарифмическому способу является использование индекса. Я также рекомендую вам эту страницу (но у DBMS есть некоторые незначительные вариации в синтаксисе): [Использовать индекс Luke] (http://use-the-index-luke.com/sql/table-of-contents) –
Пожалуйста, прочтите снова мой вопрос. Я уже использовал индекс. со всем уважением вы неправильно поняли мой вопрос. –