Какие выроды производительности я могу ожидать от базы данных пейджинга?
-
26-09-2019 - |
Вопрос
Скажем, у меня есть таблица X с 100 записями в нем и что работает select * from X
занимает 100 секунд.
Как долго я должен ожидать запроса select top 10 * from X
принять?
Я ожидаю, что отношения более или менее линейны, так что 10 секунд. Это правильно, или отношения нелинейны в некотором роде?
Решение
Ваша стоимость производительности находится в двух разных областях:
- Сколько времени нужно, чтобы выполнить запрос
- Сколько времени нужно, чтобы вернуть результаты
Зачастую запрос будет быстрым, но возвращающие результаты будут медленными, поскольку это входной / вывода. Если это так, то вы увидите приблизительно линейное ускорение, возвращая меньше результатов.
Однако, если сам запрос сложен, все отличаются. Если это не просто select * from X
, но select * from X where [complicated-expression]
, Затем результаты могут широко варьироваться между реализациями базы данных. В этом случае ваша производительность может быть доминирована на сложность запроса, в этом случае вы не увидите столько пользы, просто возвращая меньше результатов.