sql视图导致sql变慢(准确来说是派生表问题)

最近有个业务有点小变动,列表展示需要加上Customer消费笔数跟最后消费时间;
从视图copy下来的sql

SELECT `uprecord`.`SHOP` AS `SHOP`, `uprecord`.`SHOP_NAME` AS `SHOP_NAME`, `uprecord`.`SAREA` AS `SAREA`, `uprecord`.`SAREA_NAME` AS `SAREA_NAME`, `uprecord`.`TEL` AS `TEL`
    , `uprecord`.`VIPID` AS `VIPID`, `uprecord`.`NAME` AS `NAME`, `uprecord`.`CARD_NO` AS `CARD_NO`, `uprecord`.`OLD_LEVEL` AS `OLD_LEVEL`, `uprecord`.`OLD_LEVEL_NAME` AS `OLD_LEVEL_NAME`
    , `uprecord`.`NEW_LEVEL` AS `NEW_LEVEL`, `uprecord`.`NEW_LEVEL_NAME` AS `NEW_LEVEL_NAME`, `uprecord`.`IFMEET` AS `IFMEET`, `uprecord`.`IFMEET_NAME` AS `IFMEET_NAME`, `uprecord`.`REMARK` AS `REMARK`
    , `uprecord`.`ID_` AS `ID_`, `uprecord`.`REF_ID_` AS `REF_ID_`, `uprecord`.`PARENT_ID_` AS `PARENT_ID_`, `uprecord`.`INST_ID_` AS `INST_ID_`, `uprecord`.`INST_STATUS_` AS `INST_STATUS_`
    , `uprecord`.`TENANT_ID_` AS `TENANT_ID_`, `uprecord`.`CREATE_TIME_` AS `CREATE_TIME_`, `uprecord`.`CREATE_BY_` AS `CREATE_BY_`, `uprecord`.`UPDATE_BY_` AS `UPDATE_BY_`, `uprecord`.`UPDATE_TIME_` AS `UPDATE_TIME_`
    , `uprecord`.`GROUP_ID_` AS `GROUP_ID_`, `uprecord`.`STATUS` AS `STATUS`, `uprecord`.`STATUS_NAME` AS `STATUS_NAME`, '消费记录' AS `XFJL`
    , ifnull(`points`.`thisamount`, 0) AS `thisamount`
    , ifnull(`points`.`use_thispoints`, 0) AS `use_thispoints`
    , (
        SELECT COUNT(0)
        FROM `crmp_vip_salerecord`
        WHERE year(`crmp_vip_salerecord`.`sDate`) = year(now())
            AND `crmp_vip_salerecord`.`card_no` = `uprecord`.`CARD_NO`
    ) AS `consumption`
    , (
        SELECT `crmp_vip_salerecord`.`sDate`
        FROM `crmp_vip_salerecord`
        WHERE `crmp_vip_salerecord`.`vipid` = `uprecord`.`VIPID`
        ORDER BY `crmp_vip_salerecord`.`sDate` DESC
        LIMIT 0, 1
    ) AS `lastTime`
FROM `crmp_vip_uprecord` `uprecord`
    LEFT JOIN `crmp_vip_points` `points` ON `points`.`vipid` = `uprecord`.`VIPID`
ORDER BY `uprecord`.`CREATE_TIME_`

运行sql是毫秒级别!

image.png

把他创建成视图之后的速度
image.png

整个人蒙蔽的状态,满脑子小朋友你是否有很多❓❓❓
用explain查看了下
image.png

除了 uprecord 没走索引(有同学就会问了为啥没走索引https://blog.csdn.net/qq_20009015/article/details/91405186
这个文章已经解释了,这不是本文章的重点。)其他都走了索引,整个人又是❓❓❓
然后又查看了下视图
image.png

出现了一个奇怪的表<derived2>,没错这个就是派生表;
派生表:Microsoft公司新推出的SQL2005数据库的一个增强功能。它将子查询做为一个表来处理,这个由子查询得出的新表就是我们说的“派生表”。

生成:比如要查找一个叫张铁牛的人的信息,我们知道他是男性,为了缩小查找范围我把所有的男性都找出来,然后从这些男性中里面再去找张铁牛。这里男性的集合就相当于派生表,转成sql语句是这样:select 姓名,住址,身份证 from (select * from 表名 where 性别='男性') t where 姓名='张铁牛'

创建视图不过就是把你CREATE VIEW view_name as后的语句包裹起来了 也就是 select * from()view_name ,而上面这段sql在不布包裹的情况下是不会产生派生表的,一旦包裹起来了在
image.png

这两条子查询的情况下就会产生派生表了;证明如下:


image.png

问题是找到了,可怎么在sql优化又是一个难题(默认是全部不加where条件);暂时考虑后期在表上做冗余数据,😅ahhhhh~~~先把功能上上去。

如果有描述不对的地方请大声的告诉作者你你你这这这错了!,如果有sql优化方案也可以在下方积极评论哦;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,324评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,356评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,328评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,147评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,160评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,115评论 1 296
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,025评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,867评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,307评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,528评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,688评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,409评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,001评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,657评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,811评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,685评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,573评论 2 353

推荐阅读更多精彩内容

  • 50个常用的sql语句Student(S#,Sname,Sage,Ssex) 学生表Course(C#,Cname...
    哈哈海阅读 1,231评论 0 7
  • 基础语句 1. 创建数据库 CREATE DATABASE database_name 2. 删除数据库 drop...
    敲代码的本愿阅读 1,021评论 1 7
  • 常用语句: sql/plus sqlplus 'amdocs/Amdocs.Jx.China.110#@ysdb1...
    好好学习的蜗牛阅读 3,001评论 0 0
  • ORACLE自学教程 --create tabletestone ( id number, --序号usernam...
    落叶寂聊阅读 1,077评论 0 0
  • (一) 昨晚无聊点盘转, 几次得中万余钻, 但我不会为此骄, 因为是借不是赚, (二) 虽把万钻借到手, 立变大师...
    实在平凡阅读 704评论 19 15