LoginSignup
1
0

More than 3 years have passed since last update.

MySQLClient (CLI) はデフォルトでコメントを無効にするので optimizer hints が効かない

Posted at

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 になっている。

image.png
https://dev.mysql.com/doc/refman/8.0/en/mysql-command-options.html#option_mysql_comments

mysqlコマンドに、 -cオプションを付けることで、有効にすることができる。
これだけのことなのだが、普段-c オプションを付けることを意識したことはなく、また検索しても出てこなかったので、共有のために記載する。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0