当前位置:Gxlcms > mysql > [MySQLView]最有意思的视图view优化过程,从30分钟到0.08秒_MySQL

[MySQLView]最有意思的视图view优化过程,从30分钟到0.08秒_MySQL

时间:2021-07-01 10:21:17 帮助过:36人阅读

bitsCN.com

开发人员写了一个view,select要30分钟,让我优化下,view如下:

开发人员select一下需要30多分钟:

21068 rows in set (1987.08 sec)

先解析一下:

mysql> explain SELECT `ol`.`OFFER_ID` AS `OFFER_ID`,`ol`.`EFFECTIVE_DATE` AS `EFFECTIVE_DATE`

看到有 Using filesort,要优化where后面的子判断,优化如下:

select max(ol2.ID)

有些不对劲,再仔细看了view的结构,恍然大悟:

优化成如下样子:

CREATE ALGORITHM=UNDEFINED SQL SECURITY DEFINER VIEW view_offer_label AS

执行结果为:

21068 rows in set (0.08 sec)

不到0.08秒,数据完全正确。

bitsCN.com

人气教程排行