暂无图片
sql数据库查询数据量太大查不出来
我来答
分享
黎琛
2021-09-26
sql数据库查询数据量太大查不出来

我需要出一个数据统计的报表,大概要查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都是索引

我来答
添加附件
收藏
分享
问题补充
3条回答
默认
最新
Uncopyrightable

使用explian查看下执行计划,根据extra列进行优化
可以看看之前墨天轮大神留的文档:
https://www.modb.pro/db/47381

暂无图片 评论
暂无图片 有用 0
打赏 0
暂无图片
Murkey

你这个需要提供执行计划,表的统计信息

暂无图片 评论
暂无图片 有用 0
打赏 0
chengang

两个优化点
1、建一个联合索引,走索引覆盖吧(dt,to,create_time)
2、我总觉得外层的那个group by 没有必要。如果是标准的group by 的话。外层就完全没有必要。这个要根据业务来。

暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
MySQL中,索引的创建时间怎么查?
回答 2
请问MYSQL5.7该如何查看
腾讯云的mysql 数据库可以在本地做从库吗?
回答 1
可以,但是要开启云上mysql的对外网端口,或者可以联系技术支持,如何开通隧道,点对点开放,更安全。
mysql如何查看客户端的字符集?
回答 1
showvariableslike'%character%';charactersetclient的值就是客户端的字符集
有没有什么操作能够导出 MySQL 中每张表的数据量,日常各表的操作情况、数据库的访问情况?
回答 1
每张表的数据量(参考下面sql,leftjoin两次就能得到每张表数据量了)selecttablerowsas‘表数据总量’frominformationschema.tableswheretable
Navicat为什么为什么无法连接到阿里云上的mysql?
回答 2
你好:如楼上所说,请确认下连接信息是否和“SQLyog”填写的一致,另外在本地telnet看下端口情况,会不会由于测试时间点不同,数据库已经关闭等情况
MYSQL 5.7 以上版本 分区中的子分区删除是否加锁? 会影响业务运行吗?
回答 1
你要删除的分子或者子分区一定是已经不用的数据,应该是没有应用读写的。不会造成说。这个过程很快,ddl的不经过redoundo。
replicate_wild_ignore_table 只能在my,cnf中设置吗?
回答 1
在MySQL主从复制环境中,replicatewildignoretable参数是从库复制过滤器中的一个配置选项,非系统变量,故你不能直接通过set命令进行修改,通过showvariables无法查看
MySQL 如果一直向一个txt文件里面写入日志数据,时间长了,会不会导致文件巨大,从而导致无法写入的情况?
回答 2
啥意思。。。没明白
为什么在MySQL主从结构的主数据库中,不可能出现中继日志?
回答 1
已采纳
MySQL在从节点上使用了一组编了号的文件,这组文件被称为中继日志。当从服务器想要和主服务器进行数据同步时,从服务器将主服务器的二进制日志文件拷贝到自己的主机,并放在中继日志中,然后调用SQL线程,按
MySQL数据同步到oracle 数据库,一般采用什么方案?
回答 2
oceanbase数据库的oma工具