LoginSignup
5

More than 5 years have passed since last update.

RDS Mysql運用まとめ

Last updated at Posted at 2016-01-16

以下にメモリで処理させることを工夫する

データ取得する時にはメモリはディスクの10の5乗〜10の6乗倍(10万倍〜100万倍)以上高速である

メモリを増やす

ディスクへのアクセスを少なくして、メモリアクセスを有効利用するために、メモリをDBファイルと同じぐらいのサイズが望ましい、メモリが足りない場合は、ディスクへの読み込みが頻繁に発生して、当然遅くなる

DBのファイルサイズを確認(mysqlの場合)

# 全DBのファイルサイズ
SELECT  table_schema
       , SUM(data_length+index_length) /1024 /1024 as MB 
FROM information_schema.tables
GROUP BY table_schema
ORDER BY SUM(data_length+index_length) DESC

# カレントDBのテーブル毎のファイルサイズ
SELECT  
table_name, engine, table_rows, avg_row_length AS '平均行容量',  
floor((data_length+index_length)/1024/1024) AS '総容量MB',
floor((data_length)/1024/1024) AS 'データ容量MB',
floor((index_length)/1024/1024) AS 'インデックス容量MB'
FROM information_schema.tables
WHERE table_schema=database()
ORDER BY (data_length+index_length) DESC;

画面が遅い、タイムアウトになる場合は調査

以下は本番ではなく、stagginDBでやること

  1. アクセスログを有効にして、発行するSQLを全部見れるようにする
SHOW GLOBAL VARIABLES where Variable_name like '%general_log%';
SET GLOBAL general_log = 'ON';
SET profiling=1;

general_log_fileの値を見て、ファイル監視
$ tail -f /var/lib/mysql/#{hostname}.log

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5