tidb 4.0.13版本
背景:
我们有个查询平台,有时候业务会做一些大查询,为了避免查询平台的查询影响到线上的流量,我们使用了tiflash,且单独配置了一个tidb节点,这个节点是强制所有查询都是用tiflash。
今天业务反馈,有个索引等值查询的sql在查询平台很慢,但是在代码里查询很快,经过排查发现该sql在tiflash执行的时候全表扫描,但是该查询的查询条件是索引,且等值查询,数据类型也一致,不太理解为啥会全表扫描。
下面是在tikv的执行计划
mysql> explain analyze SELECT * FROM dbzz_financialcenter.outbound_order_sku t where sales_order_no = '3127937763871982738';
+--------------------------+--------------+-----------+--------------+---------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------+---------+------+
| id | estRows | actRows | task | access object | execution info | operator info | memory | disk |
+--------------------------+--------------+-----------+--------------+---------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------+---------+------+
| TableReader_7 | 6.67 | 1 | root | | time:47.2s, loops:2, cop_task: {num: 2194, max: 1.32s, min: 75.2ms, avg: 320ms, p95: 541.6ms, rpc_num: 2194, rpc_time: 11m42.1s, copr_cache: disabled} | data:Selection_6 | 1.48 KB | N/A |
| └─Selection_6 | 6.67 | 1 | cop[tiflash] | | tikv_task:{proc max:1.32s, min:73.7ms, p80:433.8ms, p95:538.9ms, iters:1, tasks:2194} | eq(dbzz_financialcenter.outbound_order_sku.sales_order_no, "3127937763871982738") | N/A | N/A |
| └─TableRangeScan_5 | 326965626.00 | 326952756 | cop[tiflash] | table:t | tikv_task:{proc max:1.31s, min:73.7ms, p80:420ms, p95:523.8ms, iters:9039, tasks:2194} | range:[0,+inf], keep order:false | N/A | N/A |
+--------------------------+--------------+-----------+--------------+---------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------+---------+------+
3 rows in set (47.85 sec)
mysql>