首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySql视图非常慢。为什么?

MySql视图非常慢。为什么?
EN

Stack Overflow用户
提问于 2020-07-10 18:36:06
回答 1查看 228关注 0票数 2

我的常见问题是:

代码语言:javascript
复制
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

我的观点是:

代码语言:javascript
复制
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)

我的视图查询:

代码语言:javascript
复制
SELECT * from myview;

执行时间: 600ms

EN

回答 1

Stack Overflow用户

发布于 2020-07-10 18:52:33

只要在视图中提到DISTINCT或聚合函数,MySQL就会为该视图选择TEMPTABLE算法,这意味着它将为该视图创建一个临时表,然后对其应用排序、分组和聚合。请参阅更多详细信息here。此外,还有一些recommendations here concerning view performance

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62832483

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档