Соединение SQL по сравнению с отдельным запросом в коде без соединения - производительность

Вы могли всегда просто использовать gcc через cygwin.

13
задан Melursus 10 December 2009 в 19:19
поделиться

3 ответа

Вообще говоря, сервер БД всегда присоединяется быстрее, чем код приложения. Помните, что вам нужно будет сделать дополнительный запрос с круговым обходом сети для каждого соединения. Однако, если ваш первый набор результатов невелик, а ваши индексы хорошо настроены, эта модель может работать нормально.

Если вы делаете это только для повторного использования решения ORM, возможно, вы проиграете битву. Я неизменно обнаруживал, что мне нужны наборы данных только для чтения, которые могут быть созданы только с помощью SQL, поэтому теперь я использую ORM для операций CRUD для каждого объекта и обычный SQL для поиска, отчетов, агрегатов и т. Д.

13
ответ дан 2 December 2019 в 00:31
поделиться

Если ранги являются статическими значениями, рассмотрите возможность их кеширования в своем приложении.

Если вам нужны пользователи часто, а ранжирование редко, рассмотрите возможность отложенной загрузки рангов. (например, отдельные запросы, но второй запрос используется только изредка.)

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

Прототип любые возможные варианты и запустить тесты производительности.

РЕДАКТИРОВАТЬ: Дальнейшие мысли о вашем уровне сохраняемости, потому что я сам сталкиваюсь с этим. Рассмотрите возможность добавления классов, похожих на постоянство, которые обрабатывают соединения в качестве основного запроса и доступны только для чтения. Вам решать, подходит ли это вашему конкретному сценарию, но для многих приложений доступ к базе данных во многих случаях основан на соединениях, которые могут быть довольно большими и сложными. Если вы сможете обрабатывать их согласованным образом с помощью постоянных, обновляемых объектов, это может стать большой победой для вашей архитектуры в целом. Концептуально это очень похоже на представление в базе данных и запрос представления вместо написания соединения, но вы делаете все это в коде.

1
ответ дан 2 December 2019 в 00:31
поделиться

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

0
ответ дан 2 December 2019 в 00:31
поделиться
Другие вопросы по тегам:

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