Сложность времени запроса базы данных

Кажется, функция расширения класса поможет:

fun Double.str(decPlaces: Int): String = "%.${decPlaces}f".format(this)

и использовать ее как

LOG.info { "It went ${distance.str(3)}" }
22
задан Dana 7 April 2009 в 22:05
поделиться

6 ответов

На самом деле я думаю, что доступ на основе индекса будет O (журнал (n)), потому что Вы будете все еще искать вниз через организацию B-Tree-esque для получения до записи.

25
ответ дан 29 November 2019 в 04:47
поделиться

Для ответа на литеральный вопрос, да, если нет никакого индекса на столбце, механизм базы данных должен будет посмотреть на все строки.

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

7
ответ дан 29 November 2019 в 04:47
поделиться

Индексы для каждого столбца, поэтому если Вы используете, где пункт на неиндексированном столбце, он сделает так называемое сканирование таблицы, которое является O (n).

4
ответ дан 29 November 2019 в 04:47
поделиться

Я не знаю ответа, но имейте в виду, что нотация big-O дает только представление о производительности для произвольно больших размеров наборов данных.

Например, узкое место для производительности базы данных обычно ищет диск . Следовательно, производительность значительно возрастает, если рабочий набор данных можно сохранить в памяти. Нотация Big-O ничего не скажет о таких оптимизациях, потому что они актуальны только для конечных наборов данных.

3
ответ дан 29 November 2019 в 04:47
поделиться

Существуют различные типы индексов, различных планов выполнения и различных реализаций для различных баз данных. Большая часть кода базы данных отношений находится в оптимизирующих поиск алгоритмах. Нет ни одного ответа на Ваш вопрос. Можно использовать инструмент для визуализации плана выполнения, когда Вы хотите знать, как запрос будет выполняемым.

0
ответ дан 29 November 2019 в 04:47
поделиться

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

0
ответ дан 29 November 2019 в 04:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: