私信  •  关注

jaechoi

jaechoi 最近回复了
6 年前
回复了 jaechoi 创建的主题 » 为什么mysql连接查询-完全扫描不使用索引

伙计们。。 谢谢你对我的问题感兴趣。

以上两个表在暂存环境和生产环境中具有相同的索引结构。 使用伽辽星团。

我真正想知道的是,他们为什么使用不同的“执行计划”? 特别是在生产环境中,连接查询非常慢。

我昨天做的是…

select * from t_deposit_trx
where remit_tx_id in (
  select tx_id
  from t_settle_trx
  where report_date >= '2019-03-01'
    and report_date <= '2019-03-02'
    and tx_type = 'CANCEL'
)

我将此查询稍微更改为

select * from t_deposit_trx
where tx_seq in (
  select tx_seq 
  from t_settle_trx
  where report_date >= '2019-03-01'
    and report_date <= '2019-03-02'
    and tx_type = 'CANCEL'
)

然后先进行“范围扫描”和“索引扫描”。 但两个发送序列值是不同的。它没有任何关系。 这只是测试它们在连接查询时是否可以使用索引。

你知道我的意思吗? 这意味着它们可以在连接时使用索引。

那么是否存在环境变量问题、密钥长度限制或其他问题?

谢谢你读我的文章。