eprivalov
@eprivalov
Учусь

Нужно ли оптимизировать такие SQL-запросы?

SELECT tx5_users.id userid, tx5_users.username username, tx5_users.oldrank oldrank, tx5_users.alliance alliance, (

			SELECT SUM( tx5_vdata.pop )
			FROM tx5_vdata
			WHERE tx5_vdata.owner = userid
			)totalpop, (

			SELECT COUNT( tx5_vdata.wref )
			FROM tx5_vdata
			WHERE tx5_vdata.owner = userid AND type != 99
			)totalvillages, (

			SELECT tx5_alidata.tag
			FROM tx5_alidata, tx5_users
			WHERE tx5_alidata.id = tx5_users.alliance
			AND tx5_users.id = userid
			)allitag
			FROM tx5_users
			WHERE tx5_users.access < " . (INCLUDE_ADMIN ? "10" : "8") . "
			AND tx5_users.tribe <= 3 ORDER BY totalpop DESC, totalvillages DESC, userid DESC


SELECT tx5_users.id userid, tx5_users.username username, tx5_users.dpall,  (

			SELECT COUNT( tx5_vdata.wref )
			FROM tx5_vdata
			WHERE tx5_vdata.owner = userid AND type != 99
			)totalvillages, (

			SELECT SUM( tx5_vdata.pop )
			FROM tx5_vdata
			WHERE tx5_vdata.owner = userid
			)pop
			FROM tx5_users
			WHERE tx5_users.dpall >=0 AND tx5_users.access < " . (INCLUDE_ADMIN ? "10" : "8") . " AND tx5_users.tribe <= 3
			ORDER BY tx5_users.dpall DESC, pop DESC, userid DESC


Остальные запросы очень похожи на эти два...
  • Вопрос задан
  • 2510 просмотров
Пригласить эксперта
Ответы на вопрос 2
mgyk
@mgyk
Лучше не использовать вложенные запросы в mysql. Попробуйте переписать с JOIN если все индексы на месте, то должно быть быстрее
Ответ написан
@v_prom
посмотри explain'ом насколько быстро они выполняются и уже думай, надо оптимизировать или нет, а так-то действительно вложенные запросы не самое красивое решение.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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