feature request
MySQL のバグは bugs.mysql.com で管理されています。 このサイトにはバグだけでなく、機能改善(feature request) の要望も投稿できます。
眺めてみる
普段はバグ(不具合)に注目してみているのですが、今日は、FRをみてみようと思います。
Advanced Search から StatusがVerified、Severity が S4(Feature request ) を条件として検索してみます。 ID順でソートし、最近投稿されたものを見てみます。
これ確かに欲しい!と思ったら
Affects me というボタンがあります。「このバグやリクエストは自分にも関係がある」ことを示すものです。投票機能のようなものですね。 Affects me の数が多ければ、MySQLの開発者の人たちは、「このリクエストはニーズが高い」とわかるわけです。もしかしたら、優先して実装してくれるかもしれません。
ということで、「これ良さそう!」というFeature request があったら、Affects Me しましょう。
when log_slow_extra is on,add some new status
スロークエリに出力されるステータスを増やして欲しい。具体的には、InnoDB_pages_distinct
, InnoDB_IO_r_wait
, InnoDB_rec_lock_wait
, InnoDB_queue_wait
があるとすごい便利!というFR。
MySQL Bugs: #99261: when log_slow_extra is on,add some new status
実は、Perconaサーバにはこの機能があります。Percona ではこのようなスロークエリログが出ます。
InnoDB_IO_r_bytes
が大きいものを見れば、DISK IOに負荷をかけているSQLがすぐ特定できます。実際、使っていて、非常に便利です。
# User@Host: mailboxer[mailboxer] @ [192.168.10.165] # Thread_id: 11167745 Schema: board # Query_time: 1.009400 Lock_time: 0.000190 Rows_sent: 4 Rows_examined: 1543719 Rows_affected: 0 Rows_read: 4 # Bytes_sent: 278 Tmp_tables: 0 Tmp_disk_tables: 0 Tmp_table_sizes: 0 # InnoDB_trx_id: 1500 # QC_Hit: No Full_scan: Yes Full_join: No Tmp_table: No Tmp_table_on_disk: No # Filesort: No Filesort_on_disk: No Merge_passes: 0 # InnoDB_IO_r_ops: 6415 InnoDB_IO_r_bytes: 105103360 InnoDB_IO_r_wait: 0.001279 # InnoDB_rec_lock_wait: 0.000000 InnoDB_queue_wait: 0.000000 # InnoDB_pages_distinct: 6430 SET timestamp=1346844943; SELECT id,title,production_year FROM title WHERE title = 'Bambi';
これは絶対便利なので、みんなで Affects Me しましょう。
JSON Path implement negative offset
MySQL Bugs: #99238: JSON Path implement negative offset
JSONで配列から値を取り出すときに、「後ろから数えて何番目」という指定方法をサポートしてほしい。というFR。
多くのプログラミング言語では、配列の要素を指定するときにマイナスで「後ろから数えて何番目」と指定できますね。
mysql> SELECT JSON_EXTRACT(JSON_ARRAY(1, 2, 3), '$[-1]');
Insufficient information in explain
MySQL Bugs: #99107: Insufficient information in explain
EXPLAINしたときに、エイリアスではなくスキーマ名とテーブル名を出してほしい。というFR。 テーブルが多いと、エイリアスとテーブルのマッピングが覚えきれずに、苦労する。。。 昔からこの仕様なので、過去にも同様のFRは出ていそうですが、、、
-- EXPLAINにはテーブル名が表示されずにエイリアスである「x」が表示される *************************** 1. row *************************** id: 1 select_type: SIMPLE table: x partitions: NULL type: ALL possible_keys: NULL key: NULL key_len: NULL ref: NULL rows: 986400 filtered: 100.00 Extra: NULL 1 row in set, 1 warning (0.00 sec)
これも、ぜひ対応してほしい。Affects Me!
Manage buf blocks for InnoDB temp tablespace separately in buffer pool
MySQL Bugs: #99020: Manage buf blocks for InnoDB temp tablespace separately in buffer pool
InnoDB をテンポラリテーブルとして利用した場合、パフォーマンス劣化してしまうケースがある。internal_tmp_disk_storage_engine = MYISAM
を指定して回避できていたが、8.0.16 から internal_tmp_disk_storage_engine
が削除され、InnoDBしか選択できなくなってしまた。InnoDB はテンポラリテーブルとして利用するには、まだまだオーバーヘッドがあるので、改善してほしい。というFR。