gpt4 book ai didi

mysql - Slow COUNT(*) 查询执行时间超过 1 秒,我怎样才能让它更快?

转载 作者:行者123 更新时间:2023-11-30 23:20:47 24 4
gpt4 key购买 nike

我有以下查询:

SELECT COUNT( * ) 
FROM Table1 AS T1
LEFT JOIN Table2 AS T2
USING ( col1 )
WHERE T1.col1 != '1'
AND T1.col2
IN (
'A', 'A-B'
)
AND T1.col3 = 'X'
AND T2.col11= '1'
AND T1.col4 = 'YZ'

此查询需要 1 秒 来执行。如果我将 COUNT(*) 替换为 SELECT(*),它也会占用 1 秒。但是,如果我随后还在末尾添加 LIMIT 0,30,它会在 0.02 秒 内执行。

我在 WHERE 子句中的所有列上都有一个索引。我什至在 Table1 中有一个 Composite Index

下面是这个查询的EXPLAIN EXTENDED:

id  select_type table   type    possible_keys   key key_len ref rows    filtered    Extra
1 SIMPLE T1 ref PRIMARY,col4,col3,col2,col1,CompositeIndex... CompositeIndex1 2 const 2010 100 Using where
1 SIMPLE T2 eq_ref PRIMARY,CompositeIndex1,incomeLevel PRIMARY 4 T1.col1 1 100 Using where

为什么这个查询要花这么长时间,如何才能让它更快?

最佳答案

对于初学者,您正在使用 LEFT join 但需要 T2.col11= '1'

除此之外,没有足够的信息来评论,只能说我希望你不要真的给你的专栏编号。

关于mysql - Slow COUNT(*) 查询执行时间超过 1 秒,我怎样才能让它更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15550805/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com