# SQL 语句执行计划不准 - 背景

![left](./student-guide/diagram/20-background-01-01.png)

```
SELECT COUNT(*)
  FROM tods.bus_jijin_trade_record a, tods.bus_jijin_info b 
 WHERE a.fund_code = b.fund_code and a.type in ('PURCHASE','APPLY')  
   AND a.status = 'CANCEL_SUCCESS' and a.pay_confirm_status = 1 
   AND a.cancel_app_no is not null and a.id >= 177045000  
   AND a.updated_at > date_sub(NOW(), interval 48 hour);
```

-------------------------------------------------------------

目标列上存在频繁读写的场景

```
SELECT COUNT(*)
  FROM tods.bus_jijin_trade_record a, tods.bus_jijin_info b 
 WHERE a.fund_code = b.fund_code and a.type in ('PURCHASE','APPLY')  
   AND a.status = 'CANCEL_SUCCESS' and a.pay_confirm_status = 1 
   AND a.cancel_app_no is not null and a.id >= 177045000  
   AND a.updated_at > date_sub(NOW(), interval 48 hour);
```

这是一个两表关联的查询，我们来看一下这个查询有什么特性：
  - 在 trade 表上我们创建了 ID 列的主键和 UPDATE_AT 列的非唯一索引
  - 在 info 表上我们创建了 ID 列的主键
  - 这是一个大表与小表的关联，量表差距悬殊，大表有 1.7 亿条记录
