mysql
只要你在视图中提到DISTINCT或聚合函数,MySQL就会为这个视图选择TEMPTABLE算法,这意味着它将为视图创建一个临时表,然后对其应用排序、分组和聚合功能。
基本表查询
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