MySQL: Сколько запросов на страницу слишком многие? [закрытый]

25
задан Bhargav Rao 8 August 2018 в 23:46
поделиться

2 ответа

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

Мне кажется, что для страницы, которая отображает только данные, 100 - это слишком много. Однако в некоторых случаях это может быть приемлемо.

На практике вам следует оптимизировать только там, где это необходимо, что означает, что вы оптимизируете страницы, которые люди используют чаще всего, и игнорируете второстепенные.

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

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

Вы можете обнаружить, что есть некоторые «низко висящие плоды» - простые запросы к редко изменяющимся данным, которые вызываются на самых популярных страницах, которые вы можете легко устранить (например, попросите сервер приложений получить данные из задания cron в локальный файл и прочтите его оттуда). Или даже «низко висящие плоды» вроде совершенно ненужных запросов.

Трудность попытки объединить несколько запросов состоит в том, что это имеет тенденцию противоречить повторному использованию кода и возможности сопровождения кода, поэтому вы должны делать это только в том случае, если это АБСОЛЮТНО необходимо; похоже, что у вас еще недостаточно данных, чтобы сделать это определение.

15
ответ дан 28 November 2019 в 21:28
поделиться

Здесь нет заданного числа, "страница" достаточно произвольна - одна может выполнять одну задачу базы данных, а другая может иметь 2 дюжины виджетов, каждый со своей задачей.

Одно хорошее эмпирическое правило: как только вы поместите SELECT внутрь цикла, который обрабатывает строки другого SELECT, остановитесь. На первых порах это может показаться достаточно быстрым, но данные имеют тенденцию расти, и эти вложенные циклы будут расти экспоненциально вместе с ними, так что ожидайте, что в какой-то момент это станет узким местом. Даже если одиночный запрос в итоге окажется значительно медленнее, в долгосрочной перспективе вы будете в выигрыше (к тому же всегда есть хранимые запросы, кэширование запросов и т.д.).

21
ответ дан 28 November 2019 в 21:28
поделиться
Другие вопросы по тегам:

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