我有一个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'
两个查询都很好,但是,我认为这很糟糕!(SELECT * FROM (...viewX)????)