Может кто-нибудь сказать мне, почему этот метод подзапроса быстрее, чем простой запрос?Насколько я могу судить, они теоретически идентичны: S
SELECT
temp.`[thing]`,
FROM ( SELECT
`[thing]`
FROM
`[table]`
WHERE
[things] ) temp
быстрее, чем:
SELECT
`[thing]`
FROM
`[table]`
WHERE
`[things]`
Тот, что в подзапросе, более чем в 5 раз быстрее ...
Может кто-нибудь сказать мне, что в моей конфигурации может вызвать такую проблему?
Приветствия.
Учитывая, что довольно много людей не получили вопрос, который я перефразирую.Запросы делают то же самое.Они одинаковы, но в одном результат ссылается на внешний запрос, а в другом просто.
SELECT `name` FROM `members` WHERE `member_id` = 1
или
SELECT tmp.`name` FROM ( SELECT `name` FROM `members` WHERE `member_id` = 1 ) tmp
Допустим, элемент member_id является первичным ключом и является единственнымindex of members.
Любую другую информацию, которую вы хотите узнать об этой странной проблеме, просто спросите в комментарии, и я предоставлю.Я не знаю, что является причиной этой проблемы, просто не предоставив вам полную информацию о моих настройках. Отсюда и отсутствие общей информации, и вопрос заключается в том, «что в моей настройке может вызвать это».
Сделайте это сами,запустите универсальный оператор SELECT, затем снова запустите его с самим собой в подзапросе и посмотрите, работает ли он быстрее в вашей системе.
Редактировать: принятый ответ на самом деле не является ответом, но это единственный ответ, которым я былучитывая, что я закрою вопрос.