5.17#每日一问#实际业务中推荐使用hint吗?

mysql生产环境中一般不建议使用hint去改变mysql优化器的选择,在ob中推荐使用hint指定查询表时选择的索引吗。

Hint 机制可以使优化器生成某种特定的计划,在生产环境下可以使用。

一般情况下,优化器会为用户查询选择最佳的执行计划,不需要用户使用 Hint 指定,但在某些场景下,优化器生成的执行计划可能不满足用户的要求,这时就需要用户使用 Hint 来指定生成某种执行计划。

1 个赞

hint只是一种优化方式,根据情况,当然可以使用的。比如超时时间这类完全可以用。

但是对于索引,join这类hint,线上应该也是需要经过变更,如果实在是解决不了执行计划问题,临时也是可以使用的吧,这种应该是需要具体问题具体分析才行。


感谢老师回复,了解了

我猜测不推荐使用hint的原因是这样会导致系统不方便维护。当表的数据量、表结构变更时,可能会影响到代码。