Этот вопрос, вероятно, не имеет определенного ответа, поэтому, если он считается субъективным и, скажем, плохим , пожалуйста, не стесняйтесь его закрывать.
В основном я разрабатываю довольно большое веб-приложение (PHP), и он использует CakePHP . Сейчас он находится в стадии разработки, и некоторые вещи в базе данных действительно сложны, поэтому необходимо много запросов, чтобы отображать страницы (около 7-25 запросов).
Поскольку это, вероятно, будет крупномасштабным, я хотел бы знать, что является максимальным , то есть сортировкой точки, которая указывает, что «вы, вероятно, что-то не так и должны оптимизировать», количество SQL-запросов это должно быть сделано на странице. У меня есть очень простая система кеширования, настроенная прямо сейчас, которая уменьшает количество запросов, которыми управляет один пользователь, до 5 в течение 15 секунд.
Много запущено 25 запросов? Должен ли я остановить разработку (у меня много времени) на некоторое время и реорганизовать код, удалить SQL-запросы, которые не используются, и посвятить время для повышения производительности в этой части?
Это, вероятно, звучит немного запутанно, поэтому возобновлено: есть ли фактический максимум для количества запросов, выполняемых на странице, которая не забивает сервер (то есть, совместно используемая среда хостинга)?
Благодарю.
Общее количество обращений к вашей базе данных также пропорционально количеству просмотров страниц. Поэтому, если запросы на страницы * на странице больше, чем емкость вашей базы данных, тогда у вас есть проблема. Очевидно, что трафик очень сильно варьируется от сайта к сайту, также как и емкость базы данных, поэтому на самом деле не может быть числа, к которому нужно стремиться.
Самое главное – это не число, а расход запроса …
Запуск 100 SELECT name FROM foo WHERE id = 1 LIMIT 1
будет намного лучше, чем запуск 1 из следующего:
SELECT * FROM foo AS a JOIN bar AS b JOIN car AS c WHERE a.col LIKE '%f%' OR b.col LIKE '%b%' OR c.col LIKE '%b%'
Так что не беспокойтесь о количестве, если это не абсурдно (более 100 человек высоки. Несколько тысяч абсурдны) … Не забывайте, что вы можете включить Query Cache Cache … Так что даже если вы набираете много запросов в секунду , пока нет тонны обновлений, большинство из них будут напрямую получать результаты кеша.
В качестве рекурсивного упоминания нет магического числа. Слишком много переменных. Такие, как спецификации сервера баз данных. Ясно, что чем лучше сервер, тем больше запросов вы можете запустить.
Возможно, проще, и почти как эффективный метод оптимизации – это пакетные запросы, где это возможно. Таким образом, вы делаете меньше круглых поездок на сервер базы данных, сохраняя при этом свою существующую логику (в основном) неповрежденной.