MySQL 8.0 でヒストグラム統計が追加されました。従来、MySQLはデータが均等に分布していると仮定し、実行計画を組み立てていました。 ヒストグラムを使えば正確なデータの分布に基づいて、より最適な実行計画が選択されるようになります。
ヒストグラムは ANALIZE TABLE 〜 UPDATE
HISTOGRAM …
pt-stalk は、vmstat や
psといったOSから見える情報や SHOW PROCESSLIST
SHOW GLOBAL STATUSといったDBの情報など、MySQLのトラブルシュートに必要な情報をごっそり収集するツールです。
$ sudo ls -l /var/lib/pt-stalk total 1428 -rw-r--r--. 1 root root 13260 11月 19 06:15 2020_11_19_06_15_10-df -rw-r--r--. 1 root root 121 11月 19 06:15 2020_11_19_06_15_10-disk-space -rw-r--r--. 1 root root 5730 11月 19 06:15 2020_11_19_06_15_10-diskstats -rw-r--r--. 1 root root 22 11月 19 06:15 2020_11_19_06_15_10-hostname -rw-r--r--. 1 root root 4714 11月 19 06:15 2020_11_19_06_15_10-innodbstatus1 -rw-r--r--. 1 root root 4715 11月 19 06:15 2020_11_19_06_15_10-innodbstatus2 -rw-r--r--. 1 root root 65640 11月 19 06:15 2020_11_19_06_15_10-interrupts -rw-r--r--. 1 root root 15624 11月 …[さらに読む]
この MySQL ベンチマーク シリーズはMySQL-Benchmarkタグから一覧できます。
最初の方で環境構築をしていて、その環境で実験しています。
前回1Gbのネットワーク帯域がボトルネックになってしまうことがわかったので、10Gbの環境を作っていく
導入機器
コンシューマ向け(?)の …
[さらに読む]tmtms.hatenablog.com の続き。
C API だと ORDER BY ?
のプリペアドステートメントでクライアントがフリーズするというのを書いたんだけど、Go だと問題ない という話があったので、MySQL のプロトコルを追ってみた。
プリペアドステートメントを発行すると通常は次のようにパケットが流れる。
=> COM_STMT_PREPARE "SELECT ?,?,? FROM tbl" <= ステートメントID, 結果セットのカラム数(3), プレースホルダの数(3) <= 謎パケット <= 謎パケット <= 謎パケット <= EOF パケット
…
[さらに読む]MySQL では、パスワードのハッシュ値を指定してユーザを作ることが出来ます。
mysql> SELECT authentication_string FROM mysql.user WHERE User = 'usr'; +-------------------------------------------+ | authentication_string | +-------------------------------------------+ | *9DE95B4999920AF052A4DC2BC3D229D4E9D1B676 | +-------------------------------------------+ 1 row in set (0.00 sec)
mysql> CREATE USER usr@'localhost' IDENTIFIED BY PASSWORD '*9DE95B4999920AF052A4DC2BC3D229D4E9D1B676'; Query OK, 0 rows affected, 1 warning (0.00 sec)
この方法は複数のデータベースに同一のパスワードでユーザを作成する時に便利です。
…
[さらに読む]