导致巨大cpu利用率和高延迟的查询

yzuktlbb  于 2022-10-22  发布在  Mysql
关注(0)|答案(1)|浏览(175)

下面的查询在我的数据库环境中造成了巨大的cpu利用率和高延迟。我尝试使用不同类型的索引来提高查询性能,但不幸的是,任何索引都没有帮助提高性能。有什么建议可以重写查询以获得相同的结果吗。

query
SELECT kln.qsw, kln.mngy
FROM (
SELECT kln2.mngy, MAX(kln2.nonUnixjdjf) dm_hj
FROM mfh.view_mats kln2
WHERE kln2.jdjf <= '2022-10-19 10:47:25.000000' 
GROUP BY kln2.mngy
) pun_ghky
JOIN pun_ghky.mngy = kln.mngy);
ekqde3dh

ekqde3dh1#

此索引将对view_mats:INDEX(mngy, nonUnixjdjf)有利。也就是说,对于trip_dsty:INDEX(mngy, jdjf)
并且(可能)删除idx_n1,因为它只包含该索引的开头。
(我并不完全精通Columnstore;上面的建议是针对InnoDB索引的;它可能适用于这里。)
通常,浮点和双精度上的(m,n)是无用的,可能会导致舍入错误。double(20,10)可能应该是普通doubleDECIMAL(20,10)
LIMIT 10000——您真的向客户机交付了那么多行吗?铲这么多也是一个性能问题。

相关问题