Сколько в среднем, Ваш сайт делает запросов к базе данных, при загрузке одной страницы?
На wp зашел к ним на сайт, у них на главной - 3 запроса, а в просмотре категорий - 5 запросов. Работает мгновенно...
Разрабатываю сейчас свой сайт, и смотрю что получается до 10ти запросов при каждом запросе на страницу, думаю, не многовато ли
Есть запрос у меня, который выводит весь основной контент, индексы - проставлены, но в нем есть несколько JOIN-ов и подзапросов, читаю - что такие запросы очень тяжело идут...
Вот пример запроса
SELECT s.*,
( SELECT count(*) FROM `server_transitions` WHERE `server_id` = s.id ) AS `transitions`,
FROM `servers` s
LEFT JOIN `projects` p ON p.id = s.project_id
LEFT JOIN `games` g ON g.id = p.game_id
LEFT JOIN `vips` vip ON vip.id = s.vip_id
WHERE s.status = 1 AND p.game_id = $game_id
ORDER BY s.position ASC
LIMIT 0, 50
Смотря какой сайт. Бывает и по 20-30 обращений к БД на один запрос для сложных проектов (и это при хорошей оптимизации, когда информация в списках и прочих цикличных вещах вытаскивается одним запросом, а не несколькими десятками).
Другое вопрос в размере самой базы. Использовать запросы с JOIN'ами на больших таблицах не самый быстрый вариант. Лучше выполнять денормализацию данных или использовать сводные таблицы в таких случаях.
Запрос, который вы привели не оптимизирован. Советую сделать следующее:
count(*)
на MyISAM не самые быстрые. Лучше хранить данные счетчика в промежуточной таблице, а при операциях, связанные с его увеличением/уменьшением вносить соответствующие изменения в эту таблицу.WHERE s.status = 1 AND p.game_id = $game_id
во-первых, потенциально небезопасная. Оберните $game_id в кавычки. Во-вторых, для увеличения производительности лучше поменять местами условия поиска WHERE p.game_id = '$game_id' AND s.status = 1
(так мы сразу ищем строку по уникальному game_id, а не перебираем все варианты со status = 1, коих будет большинство).Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть у меня список товаров, я эти товары сериализовал и добавил в мемкеш, и при выводе вывожу из кэша
как реализовать в yii2 рейтинг, чтобы каждый пользователь мог поставить оценку от 1 до 5, меня интересует все от структуры до кода