• 締切済み

データベース容量の算出方法について

現在仕事上において、MYSQL4.1 & PHP4.3 を利用してアプリケーションを開発しています。 今回、MYSQL上の各データベースごとのディスク使用容量をWEB上で閲覧できる機能を追加することになりました。 現在以下の方法で算出しているのですが、出力されるのに1分以上掛かり、とても実用に耐えうる速度ではありません。 <各データベース容量の算出方法> 1. 独自のテーブルから登録されている各データベース名(40個)を取得 2. (1)で取得したデータベース名から、以下のクエリを実行し、テーブル(75個)の情報を取得。  show table status <取得したデータベース名> 3. (2)で取得したテーブル情報からData_lengthとIndex_lengthを足してテーブルの容量を算出。 4. 3で取得したテーブル容量を各データベースごとに合計する。 上記を繰り返して各データベースの容量を算出しています。しかし上記の方法ですと、全データベースの全テーブルにアクセスしていることになりますので、処理が非常に重くなります。 show table status がボトルネックになっているようなのですが、上記の方法以外にデータベース容量の算出方法がありましたら、どうかご教授頂けないのでしょうか? 本当に困っていますのでどのようなご意見でも結構です。 どうぞ宜しくお願い致します。

みんなの回答

回答No.1

ディスク使用量といった情報なら、一般ユーザでなく、限られたユーザに公開すればいいように思いますが? また、使用量をリアルタイムで知らせる必要があるのかどうかも、切り分けできるのでは? 通常・・・前夜等、トラフィック量の少ない時間帯に得ていた情報を返却 管理者向け・・・リアルタイムで取得。ただし、実行可能ユーザを制限したり、「時間が掛かる」といったことを周知させる。

noname#259065
質問者

お礼

お返事が遅くなりました。 上記の件ですが、MYSQLはデータベースをディレクトリで管理しているので、そのディレクトリサイズを調べることで、目的を果たすことができました。