我的常见问题是:
SELECT
DISTINCT vt.id as id,
vtt.name as n,
vt.etxid as etx
FROM vt
LEFT JOIN vtt ON
(vtt.locale = "etx"
AND vtt.etxid = vt.etxid)执行时间: 5ms
我的观点是:
CREATE OR REPLACE VIEW myview AS
SELECT
DISTINCT vt.id as id,
vtt.name as n,
vt.etxid as etx
FROM vt
LEFT JOIN vtt ON
(vtt.locale = "etx"
AND vtt.etxid = vt.etxid)我的视图查询:
SELECT * from myview;执行时间: 600ms
发布于 2020-07-10 18:52:33
只要在视图中提到DISTINCT或聚合函数,MySQL就会为该视图选择TEMPTABLE算法,这意味着它将为该视图创建一个临时表,然后对其应用排序、分组和聚合。请参阅更多详细信息here。此外,还有一些recommendations here concerning view performance。
https://stackoverflow.com/questions/62832483
复制相似问题