sql数据库查询数据量太大查不出来

发布于 2022-09-30 23:08:38 字数 355 浏览 26 评论 0

我需要出一个数据统计的报表,大概要查6张表,一张表大概是200w记录左右

select dt,num,count(*) from
    (SELECT
        CONCAT(YEAR (create_time),'年',WEEK(create_time),'周') dt,
        COUNT(1) AS num
    FROM mail_record202108
    GROUP BY dt,`to` ORDER BY WEEK(create_time))t1
group by num order by dt,num;

由于数据量大而且查询复杂,一直查询超时,有什么办法吗?create_time和to都是索引

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

秋意浓 2022-10-07 23:08:38

虽然你加了索引,但是函数会让索引失效。尽可能在索引列上完成排序操作,遵照索引建的最佳最前缀。同时索引的话要建立复合索引,因为MySQL一般只会选择一个索引来使用。具体的最好使用explain查看执行计划,看看具体慢在那里,再具体的优化。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文