社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
私信  •  关注

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'
)

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

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

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

谢谢你读我的文章。