mita2 database life

主にMySQLに関するメモです

MySQL

プロシージャの中身のクエリはスロークエリログに落ちない

とあるMySQLのデータベースで、性能劣化した疑いのあるプロシージャがありました。プロシージャには複数のSELECTやINSERTが含まれています。どのSQLが遅かったか突き止める方法はあるのでしょうか?プロシージャに含まれている、各SQLはスロークエリログに落…

サーバサイドプリペアドステートメントはperformance_schemaに記録されない

あるクエリがperformance_schemaに記録されなかった。原因を調べていて1つ記録されない条件を見つけたのでメモ。まず、問題ないパターン。mysql> SELECT NOW();+---------------------+| NOW() |+---------------------+| 2019-07-30 10:40:47 |+----------…

mysqldumpで出力されるINSERT文の最大長は?

mysqldumpの --extended-insert オプションを利用すると、出力されるINSERT文がバルクINSERTの形式になる。まとめてINSERTすることで、書き込み回数を減らし、importにかかる時間を短縮するための仕組み。どこまで長いINSERT文が生成されるんだろうか?まさ…

MySQL 8.0でレスポンスタイムのヒストグラムが見れるようになった

このエントリーはMySQL Casual Advent Calendar 2018の7日目です。 自分は筆が遅く、11月から準備しようしよう、と思ってたにも関わらず、結局、直前になって書いてます。。。 さて、MySQL 8.0になって、performance_schemaが15個増えてました。5.7では、87…

MySQL 8.0でrootのSHOW GRANTSの表現が変わった

8.0からGRANT ALLしたユーザをSHOW GRANTS FORすると、ALL PRIVILEGESではなく、 実際に付与されている個別の権限が列挙されるようになってた。 mysql> GRANT ALL PRIVILEGES ON *.* TO 'super'@'%';Query OK, 0 rows affected (0.07 sec)mysql> SHOW GRANTS…

MySQLでワイルドカード証明書が扱えないという話をしたらすぐ扱えるようになった件

07/23日の日本MySQLユーザ会で、MySQLのSSLや透過的暗号化について発表してきました。 透過的暗号化とSSL 使ってみた from Satoshi Mitani 発表の中で、 SSLのワイルドカード証明書がうまく扱えず、大量にサーバを管理するときは大変。。。という話をしまし…

MyNA 会 201703 で MySQL のDB利用者向けベストプラクティスの話してきた

MySQL のプロダクトマネジャーである Matt Lord さんをお招きして 日本MySQLユーザ会会 を開催しました。 当日はベストプラクティス・・・というかDBAからのお願いを発表してきました。DB利用者に意識してほしいことを中心に取り上げてみました。 My MySQL B…

Group Replication を試す(4) リカバリ

Group Replication で特定のサーバのデータが吹き飛んでしまった場合の復旧手順を確認。 動いているサーバからdumpを取って、復旧すれば良いのだが、、、--single-transaction で mysqldump しようとすると、GRではSavepoint がサポートされていないため、 …

Group Replication を試す(3) 障害時の挙動

group_replication_recovery チャネルは障害後のサーバ間の差分同期のみに使われる。 Group Replication のステータスが ONLINE 状態のときは、Master_HostがNULL、Slave_{IO,SQL}_Running は NO。 mysql> select * from performance_schema.replication_gro…

Group Replication を試す(2) ロックの挙動

テスト用のテーブル mysql> CREATE TABLE grplt.tbl (pk SERIAL, col1 int, who_update varchar(10));Query OK, 0 rows affected (0.00 sec) mysql> INSERT INTO grplt.tbl (col1, who_update) VALUES (1, 'node1') , (2, 'node1'), (3, 'node1');Query OK, …

Group Replication を試す(1) 導入編

MySQL 8.0 で入ると噂されていた、Group ReplicationがMySQL 5.7.17 でリリースされました。5.7 GAとは何だったのか。。。 とはいえ、早く使えるようになったのは、うれしいです。※ Group Replication は追加プラグインとして提供されているため、明示的に使…

performance_schema を top っぽく見るツール ps-top

とある企業のDBA @yoku0825 さんに ps-top というものを教えてもらったので試してみました。 ps は 「Performance Schema」のps です。MySQL の パフォーマンス統計である performance_schema の情報をtopコマンドのように表示してくれる。 インストールps-t…