dポイントプレゼントキャンペーン実施中!

現在仕事上において、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 がボトルネックになっているようなのですが、上記の方法以外にデータベース容量の算出方法がありましたら、どうかご教授頂けないのでしょうか?
本当に困っていますのでどのようなご意見でも結構です。

どうぞ宜しくお願い致します。

A 回答 (1件)

ディスク使用量といった情報なら、一般ユーザでなく、限られたユーザに公開すればいいように思いますが?



また、使用量をリアルタイムで知らせる必要があるのかどうかも、切り分けできるのでは?

通常・・・前夜等、トラフィック量の少ない時間帯に得ていた情報を返却

管理者向け・・・リアルタイムで取得。ただし、実行可能ユーザを制限したり、「時間が掛かる」といったことを周知させる。
    • good
    • 0
この回答へのお礼

お返事が遅くなりました。

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

お礼日時:2007/12/02 16:01

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!