RDBMS Engine Inspection for Troubleshooting
RDBMS Engine Inspection for Troubleshooting
MySQL
設定確認
SHOW GLOBAL VARIABLES;状態確認
SHOW GLOBAL STATUS;システム設定値確認(グローバル)
SHOW GLOBAL VARIABLESシステム設定値確認(セッション)
SHOW (SESSION) VARIABLESInnodb 詳細確認
SHOW ENGINE INNODB STATUS\G;実行しているクエリー
SHOW FULL PROCESSLIST \G;実行したクエリー
SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST ORDER BY id DESC LIMIT 10\G;レプリケーションをしているスレーブの有無確認
マスター/スレーブの状態確認
インデックス確認
テーブルの情報取得
プロセスの各ステータスで要した時間を調査
権限一覧取得
スロークエリー発行
権限詳細取得
サイズの大きいテーブルを順番に表示(現在のデータベース)
サイズの大きいテーブルを順番に表示(データベース内のテーブル全体)
指定したSQLの実行時間測定
テーブルDDL
エンジン内部のクエリー状況等調査
MySQL 8.0未満
コマンドの結果を定期的に取得
historyにパスワード等を残したくない場合 .my.cnf.XXXXXを以下の内容で作成してchmod 600を設定。
ロングトランザクションがあるかどうか確認するクエリ
history list length を確認するクエリ
待機しているトランザクションと待機させているトランザクションを確認するクエリ
インポート/エクスポート
各種メモリサイズ調査
メモリ使用量分析
PostgreSQL
基本
INSERT INTO pg_stat_activity_log SELECT now(), * from pg_stat_activity;のようにログテーブルに蓄積しておくのも手
DDL取得
Oracle
DDL取得
参考
MySQLインスタンスのメモリ領域
グローバルメモリ領域
query_cache
thread_cache
table_cache
InnoDBテーブル用のメモリ領域
innodb_buffer_pool
innodb_log_buffer
innodb_additional_mem_pool
MyISAMテーブル用のメモリ領域
key_buffer
HEAPテーブル用のメモリ領域
スレッド専用メモリ領域
join_buffer
read_buffer
sort_buffer
thread_stack
binlog_cache
max_allowed_packet
OS管理領域
OSバッファキャッシュ
データベース領域
MYIファイル
MYDファイル
InnoDBログファイル
frmファイル
バイナリログファイル
InnoDBデータファイル
参考
https://dev.mysql.com/doc/refman/5.6/ja/sql-syntax.html
https://dev.mysql.com/doc/refman/5.6/ja/explain-output.html
https://qiita.com/yoheiW@github/items/23c5791b34da6f814056
https://www.qoosky.io/techs/3a369dd466
https://www.percona.com/blog/2006/07/17/show-innodb-status-walk-through/
https://open-groove.net/mysql/seek-mysql-memory/
http://nippondanji.blogspot.jp/2011/12/mysql.html
http://nippondanji.blogspot.jp/2009/03/mysql10.html
個人ブログ
Yakst: https://yakst.com/ja/tags/mysql
MySQLのメモリー使用量を最適化する設定のベストプラクティス: https://yakst.com/ja/posts/3983
漢(オトコ)のコンピュータ道
http://nippondanji.blogspot.jp/search/label/mysql
http://nippondanji.blogspot.jp/search/label/performance%20tuning
MySQLを高速化する10の方法: http://nippondanji.blogspot.jp/2009/02/mysql10.html
さらにMySQLを高速化する7つの方法: http://nippondanji.blogspot.jp/2009/03/mysql7.html
InnoDBのログとテーブルスペースの関係: http://nippondanji.blogspot.jp/2009/01/innodb.html
MySQLのEXPLAINを徹底解説!!: http://nippondanji.blogspot.jp/2009/03/mysqlexplain.html
Using filesort: http://nippondanji.blogspot.jp/2009/03/using-filesort.html
オトコのソートテクニック2008: http://nippondanji.blogspot.jp/2008/12/2008.html
限界までMySQLを使い尽くす!!: http://nippondanji.blogspot.jp/2009/05/mysql.html
MySQLにおけるレプリケーション遅延の傾向と対策: http://nippondanji.blogspot.jp/2011/12/mysql.html
大人のためのInnoDBテーブルとの正しい付き合い方。: http://nippondanji.blogspot.jp/2010/09/innodb.html
やってはいけない!!MySQLに悲鳴をあげさせる10の方法: http://nippondanji.blogspot.jp/2009/04/mysql10.html
なぜMySQLのサブクエリは遅いのか。: http://nippondanji.blogspot.jp/2009/03/mysql_25.html
知って得するInnoDBセカンダリインデックス活用術!: http://nippondanji.blogspot.jp/2010/10/innodb.html
InnoDBでCOUNT()を扱う際の注意事項あれこれ。: http://nippondanji.blogspot.jp/2010/03/innodbcount.html
InnoDBのREPEATABLE READにおけるLocking Readについての注意点: http://nippondanji.blogspot.jp/2013/12/innodbrepeatable-readlocking-read.html
Sergey Petrunia’s blog: http://s.petrunia.net/blog/?p=24
MySQLのmetricに関する話: http://labs.gree.jp/blog/2018/06/16962/
誰も教えてくれなかったMySQLの障害解析方法: https://qiita.com/muran001/items/14f19959d4723ffc29cc
サンプルデータ
https://downloads.mysql.com/docs/world.sql.gz
https://github.com/awslabs/aws-database-migration-samples
Last updated