pingcap / tidb

TiDB - the open-source, cloud-native, distributed SQL database designed for modern applications.
https://pingcap.com
Apache License 2.0
37.29k stars 5.85k forks source link

what does 'actRows' mean when the operator is TableRangeScan decided by columns? #22634

Open superhail opened 3 years ago

superhail commented 3 years ago

General Question

I was testing tpc-h in TiDB 4.0.10, Here is the sql:

explain analyze
select
    o_year,
    sum(case
        when nation = 'INDIA' then volume
        else 0
    end) / sum(volume) as mkt_share
from
    (
        select
            extract(year from o_orderdate) as o_year,
            l_extendedprice * (1 - l_discount) as volume,
            n2.n_name as nation
        from
            part,
            supplier,
            lineitem,
            orders,
            customer,
            nation n1,
            nation n2,
            region
        where
            p_partkey = l_partkey
            and s_suppkey = l_suppkey
            and l_orderkey = o_orderkey
            and o_custkey = c_custkey
            and c_nationkey = n1.n_nationkey
            and n1.n_regionkey = r_regionkey
            and r_name = 'ASIA'
            and s_nationkey = n2.n_nationkey
            and o_orderdate between date '1995-01-01' and date '1996-12-31'
            and p_type = 'STANDARD BURNISHED NICKEL'
    ) as all_nations
group by
    o_year
order by
    o_year;

Here is the result: Result_12.txt for node "TableRangeScan_82", the region table contains only 5 rows, but the value of 'actRows' column is 40. Is this behavior an expected one? If it is, some explanations would be helpful for me, thx in advance.

ylht commented 3 years ago

Me, too