【问题标题】:Query optimization is showing Key doesn't exist in table in mysql查询优化显示 mysql 中的表中不存在 Key
【发布时间】:2021-08-10 00:28:04
【问题描述】:

我正在研究查询优化。我已经运行了解释命令,然后是我的查询,它显示了一些解释查询优化相关记录。在那里它显示了“possible_keys”和“Extra”字段名称。我搜索了“使用可能的键使用强制索引”,我必须知道我可以在我尝试优化的查询中使用关键字“使用索引(index_list)”。

我怀疑要使用哪种类型的索引名称来代替“index_list”,我的意思是我应该使用在查询中使用过的带有别名的列名(或)我应该使用各自的索引名称吗?我在创建表时创建的查询中使用的表

我已经给出了表的索引名称,然后它显示以下错误:

ERROR 1176 (42000): Key 'index_name' doesn't exist in table 'ecs'

也欢迎任何关于查询优化的提示/建议。任何帮助,将不胜感激..!谢谢。

【问题讨论】:

  • 向我们展示查询和架构;我们将帮助您优化它。提示:FORCE INDEX 通常是错误的方法。

标签: mysql sql optimization query-optimization


【解决方案1】:

当您使用use index(<name...>)force index(<name...>) 之类的索引提示时,您必须使用索引名称。

不要使用列名或列别名。

您可以使用以下语句之一找出表中定义了哪些索引:

mysql> SHOW INDEXES IN ecs;

mysql> SHOW CREATE TABLE ecs\G

索引和键通常是 MySQL 的同义词,因此索引可以称为键。

【讨论】:

  • 谢谢大哥的解决方法,不过我这里在想怎么申请我的查询。完成后会尽快回复您。
猜你喜欢
  • 1970-01-01
  • 2018-07-15
  • 1970-01-01
  • 2020-05-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-02
相关资源
最近更新 更多