素材牛VIP会员
mysql如何提高视图查询速度?
 大***咒  分类:SQL代码  人气:1071  回帖:1  发布于6年前 收藏

最近数据库从5.5.18升级到了5.6.38,出现了一个问题,有个视图同样的数据量执行效率相比老数据库慢了20倍,应该怎么优化?

如下是视图sql:

SELECT
    `wz_demand`.`id` AS `id`,
    `wz_demand`.`operator` AS `operator`,
    `wz_member`.`username` AS `musername`,
    `wz_admin`.`truename` AS `truename`,
    `wz_demand`.`cid` AS `cid`,
    `wz_demand`.`title` AS `title`,
    `wz_demand`.`css` AS `css`,
    `wz_demand`.`thumb` AS `thumb`,
    `wz_demand`.`keywords` AS `keywords`,
    `wz_demand`.`remark` AS `remark`,
    `wz_demand`.`url` AS `url`,
    `wz_demand`.`status` AS `status`,
    `wz_demand`.`route` AS `route`,
    `wz_demand`.`publisher` AS `publisher`,
    `wz_demand`.`addtime` AS `addtime`,
    `wz_demand`.`updatetime` AS `updatetime`,
    `wz_demand`.`coin` AS `coin`,
    `wz_demand`.`template` AS `template`,
    `wz_demand`.`areaid` AS `areaid`,
    `wz_demand`.`areaid_1` AS `areaid_1`,
    `wz_demand`.`areaid_2` AS `areaid_2`,
    `wz_demand`.`sort` AS `sort`,
    `wz_demand`.`telephone` AS `telephone`,
    `wz_demand`.`address` AS `address`,
    `wz_demand`.`housecategory` AS `housecategory`,
    `wz_demand`.`renovation` AS `renovation`,
    `wz_demand`.`renovationcategory` AS `renovationcategory`,
    `wz_demand`.`housetype` AS `housetype`,
    `wz_demand`.`style` AS `style`,
    `wz_demand`.`area` AS `area`,
    `wz_demand`.`way` AS `way`,
    `wz_demand`.`budget` AS `budget`,
    `wz_demand`.`iscompany` AS `iscompany`,
    `wz_demand`.`leadtime` AS `leadtime`,
    `wz_demand`.`decorationtime` AS `decorationtime`,
    `wz_demand`.`source` AS `source`,
    `wz_demand`.`homestyle` AS `homestyle`,
    `wz_demand`.`content` AS `content`,
    `wz_demand`.`progress` AS `progress`,
    `wz_demand`.`progress1time` AS `progress1time`,
    `wz_demand`.`progress2time` AS `progress2time`,
    `wz_demand`.`progress3time` AS `progress3time`,
    `wz_demand`.`progress4time` AS `progress4time`,
    `wz_demand`.`order_no` AS `order_no`,
    `wz_demand`.`wait_comment` AS `wait_comment`,
    `wz_demand`.`referer` AS `referer`,
    `wz_demand`.`yxgsm` AS `yxgsm`,
    `wz_demand`.`orderplan` AS `orderplan`,
    `wz_demand`.`ispay` AS `ispay`,
    `wz_demand`.`uid` AS `uid`,
    `wz_demand`.`mobile` AS `mobile`,
    `wz_demand`.`sflf` AS `sflf`,
    `wz_demand`.`managerid` AS `managerid`,
    `wz_demand`.`managername` AS `managername`,
    `wz_demand`.`housekeeperid` AS `housekeeperid`,
    `wz_demand`.`housekeeper` AS `housekeeper`,
    `wz_demand`.`paystatus` AS `paystatus`,
    `wz_demand`.`orderstatus` AS `orderstatus`,
    `wz_demand`.`orderstep` AS `orderstep`,
    `wz_demand`.`nodeid` AS `nodeid`,
    `wz_demand`.`nodename` AS `nodename`,
    `wz_demand`.`outpaystaus` AS `outpaystaus`,
    `wz_demand`.`tj_name` AS `tj_name`,
    `wz_demand`.`designpay` AS `designpay`,
    `wz_demand`.`totalpay` AS `totalpay`,
    `wz_demand`.`designno` AS `designno`,
    `wz_demand`.`contactno` AS `contactno`,
    `wz_demand`.`extrapay` AS `extrapay`,
    `wz_demand`.`payforcompanystatus` AS `payforcompanystatus`,
    `wz_demand`.`ysclsd` AS `ysclsd`,
    `wz_demand`.`ysnm` AS `ysnm`,
    `wz_demand`.`ysclyq` AS `ysclyq`,
    `wz_demand`.`yssd` AS `yssd`,
    `wz_demand`.`ysclnm` AS `ysclnm`,
    `wz_demand`.`sdys` AS `sdys`,
    `wz_demand`.`paystype` AS `paystype`,
    `wz_demand`.`sign` AS `sign`,
    `wz_demand`.`getdate` AS `getdate`,
    `wz_demand`.`seriesnumber` AS `seriesnumber`,
    `wz_demand`.`logname` AS `logname`,
    `wz_demand`.`tj_tel` AS `tj_tel`,
    `wz_demand`.`domain` AS `domain`,
    `wz_demand`.`bao` AS `bao`,
    `wz_demand`.`ysyq` AS `ysyq`,
    `wz_demand`.`wrzl` AS `wrzl`,
    `wz_demand`.`kqzl` AS `kqzl`,
    `wz_demand`.`username` AS `username`,
    `wz_demand`.`applytype` AS `applytype`,
    `wz_demand`.`isApply` AS `isApply`,
    `wz_demand`.`name` AS `name`,
    `wz_demand`.`referrals` AS `referrals`,
    `wz_demand`.`referral` AS `referral`,
    `wz_demand`.`community` AS `community`,
    `wz_demand`.`companyname` AS `companyname`,
    `wz_demand`.`collection` AS `collection`,
    `wz_demand`.`three_no` AS `three_no`,
    `wz_demand`.`order_source` AS `order_source`,
    `wz_demand`.`wait_hf` AS `wait_hf`,
    `wz_demand`.`other` AS `other`,
    `wz_member`.`uid` AS `muid`,
    `wz_admin`.`uid` AS `auid`,
    `wz_demand`.`kfzy` AS `kfzy` 
FROM
    (
        (
            `wz_demand`
            LEFT JOIN `wz_member` ON ( ( `wz_demand`.`operator` = `wz_member`.`username` ) ) 
        )
    LEFT JOIN `wz_admin` ON ( ( `wz_member`.`uid` = `wz_admin`.`uid` ) ) 
    )

这里是5.6版本执行时间和explain结果:

这里是5.5版本执行时间和explain结果:

 标签:mysql

讨论这个帖子(1)垃圾回帖将一律封号处理……

Lv1 新人
编***魔 职业无 6年前#1

看执行计划是一样的,看不出问题在哪里,建议按照按照下面的思路排查:
1、两个环境都多执行几次,看平均时间,排查缓存影响。
2、升级后如果大部分sql都慢,可能是参数配置的问题
3、尝试重建username索引

 文明上网,理性发言!   😉 阿里云幸运券,戳我领取