Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Стоимость запроса / 7 сообщений из 7, страница 1 из 1
10.01.2016, 11:10
    #39144013
Closius
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Стоимость запроса
Добрый день.

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

В нашем сервисе есть довольно сложные запросы в бд. Но по причине моей не опытности я не могу понять как определить что тот или иной запрос удовлетворит меня по времени выполнения?

Как и можно ли узнать стоимость выполнения запроса вне зависимости от кол-ва записей в бд в целом? То есть у меня сейчас тестовая база насчитывает около 110 юзеров и множество связанного контента с ними. Например есть один сложный запрос который дергает 3 таблицы (по отношениям many-to-many), его стоимость 900. Это много или мало? Не загнется ли бд при 1000 пользователей например? Хотелось бы узнать как оценивать такие вещи.
...
Рейтинг: 0 / 0
10.01.2016, 12:56
    #39144039
drsm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Стоимость запроса
Closius, на глаз такие вещи оцениваются.
стоит учесть, что при 100 пользователях оптимизатор может выбрать один алгоритм,
а при 1000 совершенно другой.
и классы сложности бывают разные
...
Рейтинг: 0 / 0
10.01.2016, 17:43
    #39144104
Closius
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Стоимость запроса
drsmClosius, на глаз такие вещи оцениваются.
стоит учесть, что при 100 пользователях оптимизатор может выбрать один алгоритм,
а при 1000 совершенно другой.
и классы сложности бывают разные

Спасибо за ответ! А есть где нибудь таблица сложностей определенных функций в постгресе? Например я гдето слышал что простой SELECT * FROM table WHERE id=3; имеет сложность О(logN). А как насчет более детального описания? Например какова будет сложность такого же запроса SELECT DISTINCT(name) FROM table; ?
...
Рейтинг: 0 / 0
10.01.2016, 17:57
    #39144107
Maxim Boguk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Стоимость запроса
ClosiusdrsmClosius, на глаз такие вещи оцениваются.
стоит учесть, что при 100 пользователях оптимизатор может выбрать один алгоритм,
а при 1000 совершенно другой.
и классы сложности бывают разные

Спасибо за ответ! А есть где нибудь таблица сложностей определенных функций в постгресе? Например я гдето слышал что простой SELECT * FROM table WHERE id=3; имеет сложность О(logN). А как насчет более детального описания? Например какова будет сложность такого же запроса SELECT DISTINCT(name) FROM table; ?

будет O(N*log(N)) в лучшем случае... и это не вопрос к базе а к ограничениям алгоритмов.
Вообще любые подобные вещи тестятся ТОЛЬКО натурными тестами на реальном железе которое будет использовано для Production и на реальных обьемах сгенерированных данных.
...
Рейтинг: 0 / 0
10.01.2016, 23:15
    #39144188
Closius
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Стоимость запроса
Maxim Bogukбудет O(N*log(N)) в лучшем случае... и это не вопрос к базе а к ограничениям алгоритмов.
Вообще любые подобные вещи тестятся ТОЛЬКО натурными тестами на реальном железе которое будет использовано для Production и на реальных обьемах сгенерированных данных.

Спасибо. А может есть где какие либо тесты на основе реальной загрузки? Или даже best practices по написанию запросов?
...
Рейтинг: 0 / 0
11.01.2016, 07:34
    #39144217
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Стоимость запроса
Closius
Как и можно ли узнать стоимость выполнения запроса вне зависимости от кол-ва записей в бд в целом? То есть у меня сейчас тестовая база насчитывает около 110 юзеров и множество связанного контента с ними. Например есть один сложный запрос который дергает 3 таблицы (по отношениям many-to-many), его стоимость 900. Это много или мало? Не загнется ли бд при 1000 пользователей например? Хотелось бы узнать как оценивать такие вещи.

Берешь пишешь генератор данных для бд, набиваешь данные, чтобы их было много, скажем, в10 раз больше предполагаемый реальной загрузки, Потом на этой базе мериишь время выполнения твоих запросов.
...
Рейтинг: 0 / 0
11.01.2016, 09:41
    #39144257
drsm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Стоимость запроса
ClosiusСпасибо. А может есть где какие либо тесты на основе реальной загрузки? Или даже best practices по написанию запросов?
в принципе есть, но на самом деле, нужно уметь читать и понимать вывод этой комманды:
http://www.postgresql.org/docs/current/static/sql-explain.html
этого достаточно.
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Стоимость запроса / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]