mysql查询慢

背景:在不同机器上,对同一个表(两个机器copy的表数据条数基本一样)进行查询,时间一个能3分钟左右,一个9秒左右,目前数据30w+,大概是页面埋点,统计用户访问信息,还在继续增长,sql语句如下。

问题:是机器性能导致的么?下面语句能有什么优化的办法么?或者其他方面的优化?

SELECT
    sessionsForPV.title pageName,
    sessionsForPV.url pageID,
    sessionsForPV.pv deviceNumber,
    sessionsForPV.uv visitsNumber,
    CONCAT(ROUND(pv / total.totalPV * 100, 2),'%') ratio
FROM
    (
        SELECT title,url,COUNT(*) pv,COUNT(DISTINCT `browser_id`) uv
        FROM
            `sessions` se
             where se.create_time > "2019-03-28 00:00:00"
             and se.create_time < "2019-05-30 14:56:18"
        GROUP BY
            se.url
    ) AS sessionsForPV
LEFT JOIN (
    SELECT
        COUNT(*) totalPV
    FROM
        `sessions` se
              where se.create_time > "2019-03-28 00:00:00"
             and se.create_time < "2019-05-30 14:56:18"

) total ON 1 = 1
ORDER BY
    sessionsForPV.pv DESC
 LIMIT 0,10
阅读 1.7k
3 个回答

两个机器各自的执行计划贴出来看看

explain 下sql ,看看执行过程

大哥不提供explain咋看呀,不晓得你索引的命中情况啊,全靠猜嘛

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题