ASMのきもち

DBとAnsibleが気になって仕方ない人のブログ

MySQLのリファレンスを読む 1章の続き その⑤

まいえすきゅーえりたい ぽすぐれない おらくるってる(狂ってる)tomoです。

私事ですが、今年から娘が小学生になりまして。
もう保育園で十分色んな菌もらってきて強くなったつもりでしたが、小学校で流行ったらしい、強つよの風邪を頂きました。
治るのに約4日ほどかかりました…夏風邪つらい。みなさんも体調にはお気をつけて。

tomomo1015.hatenablog.com
はい、今日もこれの続きです。
1章を読み終える日は来るんだろうか、千里の道も一歩からというので、がんばるぞ!


今日読んだもの
1.3 MySQL 8.0 の新機能
ここのInnoDBオプティマイザの続きから。

読んでみたメモ

  • 不可視インデックスがサポート!おぉこれ嬉しい。Oracleでよく使ってるんですよ。このINDEX効率悪いから不可視にしようね、とか。
  • 降順インデックスがサポート、これは実は有名な話、なんですよね。
  • カラム値ではなく式の値をインデックス付けする関数インデックスキーがサポート。JSONのデータもINDEX化できるのはこれの恩恵
  • 「定数リテラル式から発生する自明の WHERE 条件は、後で最適化するのではなく、準備中に削除されます」これはオプティマイザが意味ないなこれっていうwhereを無視する的な認識でいいのかな。それはそれで大事だけど、これは実行する側が気をつけたい話でもあるよね。反省
  • サブクエリの準結合最適化と定数折りたたみはもうちょっと具体的な内容を見ないと理解出来ないな
  • ブールコンテキスト周り、これ8にあげたときに影響としてかなりありそう。true/falseの判定変わるように見えると、アプリ的には恐怖なのよね
  • UPDATE/DELETEで準結合変換またはサブクエリーの実体化を使用できるようになった。NOT IN 述語やNOT EXISTS 述語を利用できるようになったと。
  • ハッシュ結合の性能アップの件はなるほどなと。
  • 再帰テーブルと再帰テーブルの両方の共通テーブル式がサポート。大分複雑なクエリ実行できるようになりそう。
  • ウインドウ関数がサポート!RANKとかうまく使うとかなりいいんですよね
  • え、何「LATERAL」って知らない!初めて聞いた。これサブクエリ大量に錬成しそうだから使い所気をつけないと怖そう


ということで、今日はラテラルまで。知らないこと本当に多い。楽しい。