ASMのきもち

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

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

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

暑い日々が続いていますね。皆さんお元気ですか?
暑い日は川とか海とかで涼みたくなりますね。海…そう、海といえばイルカ!イルカといえばMySQL!!

さて、無理やり繋げた所で、今日のMySQLファンレス読む時間です。

tomomo1015.hatenablog.com
はい、今日もこれの続きです。
一章長いけどくじけない。

今日読んだもの
1.3 MySQL 8.0 の新機能
ここのC API.の続きから。

  • これはCのAPIですよね「ノンブロック通信用の非同期関数」というので、これはCのノンブロッキングソケットの話かな。というかCのAPIとかあるんだという薄い知識…いやぁRDBMSのほんの一部しか使えてないんだなぁと、反省。
  • キャスト関数の話。CONVERT()は便利そうだなぁ。こうゆう小技があるのはMySQLすごいなと思う
  • time_zone を使用したオプティマイザヒントはちょっと使い所がわからない
  • redo ログのアーカイブは、Oracle感でていい感じだと思われ。大事ですよredoを長期保存、ロスなくできるようにするのって
  • クローンプラグインは初めて聞いた!クローニングできるようになるのはすごいなぁ。
  • ハッシュ結合の最適化については、詳細はさておきハッシュ結合を優先的に使うようになったこと(もちろん最適な場合)。きをつけないといけないのはjoin_buffer_sizeがハッシュ結合時に使用するメモリサイズになるので、join_buffer_sizeの値はちょっと多めに取ったほうが良さそう。 8.0.20 以降ではブロックのNESTED LOOPは使用されなくなったというのが驚き。かなり実行計画周り変わりそう。エグゼキューターのところはオプティマイザの後のInnoDBとやりとりするあれだとおもうんだけど、イテレータっていうどうゆうこと?集合体というか塊で処理するとか?いやぁここわからないな
  • 複数値インデックスの話は、JSON周りにも対応したと認識した
    • ここは「逆だよ、JSONしか対応してないんだよ」と指摘頂きました>< yokuさん、ありがとうございます!
    • 複数値インデックスにはN:1であると書かれていて、まさにこれが複数値インデックス
    • 例えば「{ "db":[mysql,maria]}とあったら、mysql,dbとmaria,dbという複数値インデックスが作成できるよ(N:1ですね)という話なんですね

今日はここまで!C APIも知らなかったけど、イテレータエグゼキュータが分からなかったなぁ…