我有一个查询随着时间的推移会获得不同的查询计划,其中一个需要不到一分钟的时间来执行,另一个需要几天。我可以告诉数据库使用给定的计划(取自解释或使用内联指令),以便始终使用好的计划,或者至少总是避免灾难性的计划吗?好的计划只有 ref 连接,而坏的计划也有 index 和 eq_ref 以及不同的排序。
我有一个查询随着时间的推移会获得不同的查询计划,其中一个需要不到一分钟的时间来执行,另一个需要几天。我可以告诉数据库使用给定的计划(取自解释或使用内联指令),以便始终使用好的计划,或者至少总是避免灾难性的计划吗?好的计划只有 ref 连接,而坏的计划也有 index 和 eq_ref 以及不同的排序。
有很多被动性迫使 mariadb
例如:
它们如何工作以及如何使用它
https://mariadb.com/kb/en/index-hints-how-to-force-query-plans/