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とやりとりするあれだとおもうんだけど、イテレータっていうどうゆうこと?集合体というか塊で処理するとか?いやぁここわからないな
- 分からないとTwitterで呟いたら教えて頂きました…嬉しい!!
- イテレータエグゼキューターはIterator Model(RDBMSのクエリ実行の概念の一つ)であり、個別でエグゼキューターが実施していた処理をまとめたもの。それがMySQLだと「Volcano iterator design」のことなんですね。API化したのかな、ほえええすごい!
- 複数値インデックスの話は、
JSON周りにも対応したと認識した