ASMのきもち

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

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

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

今日は昨日の続きから。

tomomo1015.hatenablog.com


今日読んだもの
1.3 MySQL 8.0 の新機能
ここのInnoDB拡張機能の続きから。

読んでみたメモ

  • データディクショナリは「mysql.ibd という名前の単一の InnoDB テーブルスペースファイル」になったと。なるほど。単独ファイルになるの面白い
  • UNDOの表領域を非アクティブ化できるのは、面白いかも
ALTER UNDO TABLESPACE tablespace_name SET {ACTIVE|INACTIVE};
  • innodb_rollback_segments 変数は、undo テーブルスペースごとのロールバックセグメントの数を定義する、と。前はロールバックセグメントの合計数だったけど、この変更でUNDOテーブルスペースごとで変えられるからいいかも。バッチ系とかだと大きめにしたいよね。(ここちょっと腹落ちしてない)
  • バッファープールの事前フラッシュがデフォルト有効化(10/前は0)
  • テーブルスペースの名前変更可能。 後で変えたい時、意外とあるんだよね(XXXXX_01とか末尾に数字いれたくなったりする)ありがとう、感謝しかない。神対応
  • innodb_dedicated_server 変数を使用すると以下のパラメータをサーバのリソースに応じて自動設定します。まじですか。

innodb_buffer_pool_size
innodb_log_file_size
innodb_flush_method

  • 「 INFORMATION_SCHEMA.INNODB_TABLESPACES_BRIEF」が新しくなったらしいので8のMySQL作って覗く
  • まずzlibを知らない。ナニコレ
  • ディクショナリ情報 (SDI) はUNDOとグローバル以外が入ってる
  • innodb_directories オプションを使用すると、サーバーがオフラインのときに、テーブルスペースファイルを新しい場所に移動またはリストアできます。」おぉーついにそんなことが。これは後ほどちゃんと読まないと
  • redoの「ユーザースレッドは、書込みを同期せずにログバッファに同時に書き込むことができるようになりました。」はこれ嬉しい。意外とここで待ちになるんだよね(良いかどうかはさておき)
  • 「ユーザースレッドによるスピン遅延」がナニソレなので、この辺読まないとだめそう
  • ALTER TABLE操作。このあたりはOracle感を感じる

カラムの追加
仮想カラムの追加または削除
カラムのデフォルト値の追加または削除
ENUM または SET カラムの定義の変更
インデックスタイプの変更
テーブルの名前の変更

  • BLOBとかCLOBの機能追加は良いと思うんだけど、個人的にあの辺のデータをRDBMSに入れたくない派。オンプレ環境ならわかるけど、AWSとかクラウド使ってるなら他のソリューション選択を検討したいね。JSONもそう。
  • innodb_buffer_pool_in_core_file のコアファイル周りは後日きちんと読まないとだめ。恥ずかしいんですがコアファイルって何
  • オプティマイザによって作成されたユーザー作成の一時テーブルおよび内部一時テーブルは、一時テーブルスペースのプールからセッションに割り当てられたセッション一時テーブルスペースに格納されます。 セッションが切断されると、その一時テーブルスペースは切り捨てられ、プールに解放されます。」という動きはわかりやすくて納得。良いと思う。ちゃんとガベージコレクションっぽいことしてくれてありがとう(違)


今日はここまで!InnoDBの新機能多すぎて困る…!!