gpt4 book ai didi

mysql - 为什么在另一个数据库中执行相同的查询时不使用索引?

转载 作者:行者123 更新时间:2023-11-29 16:04:51 24 4
gpt4 key购买 nike

我有两个数据库。一种是产品数据库(mysql)另一种是开发数据库(mysql)

当我使用解释键时,开发数据库使用索引,但产品数据库不起作用。

相同的查询相同的数据库(开发数据库是产品的副本)相同的索引......

所以我检查了索引,“显示索引”...

但索引相同。

解释开发数据库的结果 enter image description here

解释产品数据库的结果 enter image description here

我希望“p”表使用索引“idx_ payment_tb”

最佳答案

当优化器选择不使用索引时,通常有一个很好的理由——即数据分布使得使用索引实际上会更慢。

请以文本形式提供 SHOW CREATE TABLEEXPLAIN SELECT,而不是图像。优化器回避索引的原因有很多;我们大概可以告诉你这次使用的是哪个原因。

  • 如果它是一个小表,为什么还要费心索引。
  • 如果正在使用的键在表中出现“很多”(这在您的开发人员和产品之间可能有所不同),则索引和数据之间的来回弹跳可能会更慢。
  • 两台机器之间的统计信息可能有所不同。

关于mysql - 为什么在另一个数据库中执行相同的查询时不使用索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55840801/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com