MySQL には、通常の SQL の他に、明示的にオプティマイザに指示を出す optimizer hints という機能がある。
MySQL :: MySQL 8.0 Reference Manual :: 8.9.3 Optimizer Hints
プログラムから実行すると hint が効く。
しかし、同じ SQL を mysqlclient (mysql cli)
で実行すると、 hint が効かない現象に出会った。
理由は、 mysqlclient
がデフォルトで、コメントを無効化してしまうためだった。
hint はコメントとして追加するため、コメントが無効化されてしまえば、 hint も無効化されてしまう。
適切ではないとして、 deprecated になっている。
https://dev.mysql.com/doc/refman/8.0/en/mysql-command-options.html#option_mysql_comments
mysql
コマンドに、 -c
オプションを付けることで、有効にすることができる。
これだけのことなのだが、普段-c
オプションを付けることを意識したことはなく、また検索しても出てこなかったので、共有のために記載する。