Help us understand the problem. What is going on with this article?

RDS Mysql運用まとめ

More than 3 years have passed since last update.

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

データ取得する時にはメモリはディスクの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
heroyct
medley
医療ヘルスケア分野の課題を解決する
https://www.medley.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away