mysql查询组200万条记录需要7秒

drnojrws  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(929)

我有一个按条件分组的查询需要7秒钟。我已经优化了它的所有数据类型,并给出了索引。
索引前执行时间:索引后15秒,优化数据类型所用时间:7秒。
我的数据库要大得多,我必须运行大约15个查询来准备我的报告单个查询需要7秒然后15*7=105秒太耗时了。
示例查询:

Select 
    ca_id, 
    count(ca_id),
    email,
    cadate
from
    tbl_zonec
group by 
    email, 
    cadate,
    ca_id

有没有办法优化查询性能?

h6my8fg2

h6my8fg21#

摆脱 id ; 不把它放在家里是完全错误的 GROUP BY . 同上 sample .
如果 ca_id 不能是 NULL ,说 COUNT(*) .
你好像每次都在扫描整张table。你得到了不同的结果吗?正在将表添加到中吗?是否修改或删除旧数据,或者这实际上是一个只写一次的表?如果是后者,则考虑建立和维护一个汇总表;会快很多(可能是10倍。)
请提供 SHOW CREATE TABLE . 什么是 PRIMARY KEY ? 如果是的话,不要从 email, cadate, ca_id ,则可能有改进。
在不改变pk的情况下,这将运行得更快一些: INDEX(email, cadate, ca_id, sample, id) --这是最佳的 GROUP BY 这就是“掩护”。

相关问题