У меня есть представление (viewX
) на основе объединений некоторых таблиц:
Когда я использую WHERE
, запрос задерживается, загрузка процессора достигает 50%, и, наконец, мне нужно закрыть службу mysqld.exe
и перезапустить, чтобы попытаться решить проблему снова.
Когда я использую HAVING
, запрос выполняется отлично и быстро, я получаю результаты, и все готово.
Запрос похож на этот:
SELECT * FROM viewX WHERE column_of_view = 'foo'
SELECT * FROM viewX HAVING column_of_view = 'foo'
Что происходит?
Я нашел решение сделать что-то вроде этого:
SELECT * FROM (SELECT * FROM viewX) as T WHERE column_of_view = 'foo'
SELECT * FROM (SELECT * FROM viewX) as T HAVING column_of_view = 'foo'
ОБА ЗАПРОСОВ РАБОТАЕТ ХОРОШО, НО, Я думаю, что это ПЛОХО! (ВЫБРАТЬ * ИЗ (... viewX) ????)