2022-05-20 Rails optimizer_hints
Rails optimizer_hints
Rails ではRDBにたいしてオプティマイザヒント を与えるためのメソッド optimizer_hints
がある。
ActiveRecord::QueryMethods | RailsDoc(β)
Topic.optimizer_hints("MAX_EXECUTION_TIME(50000)", "NO_INDEX_MERGE(topics)")
# SELECT /*+ MAX_EXECUTION_TIME(50000) NO_INDEX_MERGE(topics) */ `topics`.* FROM `topics`
どうやら Rails 6 から入った機能のようで、kamipo氏が下記のPRで入れてくれている。
Support Optimizer Hints by kamipo · Pull Request #35615 · rails/rails
ちなみに index hints の機能もあったほうがいいのでは?って思ったけど mysql only の機能だし、mysql でも deprecated な機能なので、下記の提案はRejectされている。
Support USE INDEX index hints API by intrip · Pull Request #42046 · rails/rails