TL;DR
- エラーログに吐くのと同じくらいのサイズを使っている気がする
- ところでこの機能、OFFにできないような気がするので、エラーログがグングン育つ環境だとメモリー危ないんじゃ…
MySQL 8.0.22 がリリースされました。
MySQL 8.0 の薄い本 を発行している身としては新機能や改良を試して 8.0.22 対応版の内容に組み入れていかねば…と思ったのですが、
MySQL 8.0.22 本体には目立った新機能が見当たらない! (速度に影響する退行バグが修正されている、などの話は聞きますが…)
ということで、無理やり地味な改良を取り上げてみました。
Derived Condition Pushdown Optimization とは
サブクエリがある SQL 文の実行時に サブクエリの外側にあるWHERE句などの条件の一部を サブクエリに(あらかじめ)適用することで処理の効率化を図る
という、オプティマイザの最適化処理のことです。
なるほど。よくわかりません(説明下手で申し訳ない)。
試してみる
…[さらに読む]TL;DR
History list
length
( trx_rseg_history_len
) の監視を追加した
--history-list-enable=1
すると有効になる(そのうちこっちをデフォルトにする…)
History list lengthとは(これは SHOW ENGINE INNODB STATUS
の出力に載ってる用語、 information_schema.innodb_metrics
的には
trx_rseg_history_len
…
はじめに
今回はずっと触りたかったMySQL Shellのダンプをやりつつ、 最後は前回作ったMDS相手にインポートしてみようかと思います。
MDSにインポートするためにはociクライアントの設定や、オブジェクトストレージが必要なので、それらを途中で設定していきます。
準備
1. 手元のdbdeployerで作成したMySQL8.0.21の環境に、公式が出しているテスト用データベースたちを適当に入れていきます。
自分はgit …
[さらに読む]この記事は、
MySQL のパーティショニングで速くなる?ならない?問題、あらためて実験してみた
の続きのエントリとなります。
先のエントリのコメント欄に、
先ほどの「パーティショニングあり/なしの速度差の原因」ですが、端的に言うと「アクセス経路の違い」と「スキャンするデータの局在性」でしょうね。
と書きましたが、「それなら非パーティショニングテーブルでも、スキャン/抽出するデータ行がまとまった場所に集まっていれば速い(遅くならない)のでは?」という疑問が湧くと思います。
先のエントリで使った実験データは(詳細の説明をしていませんでしたが)以下のとおり主キーの順番≠日時列の順番で入っていました。
元データ(部分) mysql> …
[さらに読む]TL;DR
RESTART
ステートメントの本質は「終了コード16で mysqld
を停止」するだけ
mysqld_safe
, systemd
,
dockerd
とかとか) が「終了コード16の時はもう一度
mysqld
を起動する」という実装をしなければならない
RESTART
ステートメントの処理の中で、「 SHUTDOWN
権限があるか」「 MYSQLD_PARENT_PID
環境変数がセットされているか」を判定してから、
SIGUSR2
シグナルを使って終了コード16での終了に持っていく
entrypoint.sh
は
MYSQLD_PARENT_PID
を渡していなかったので、その評価のところでfalseになって …