重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【6/2終了】教えて!goo新規会員登録

さくらサーバー
専用サーバ アドバンスド NEC i110Rb-1h Core2Duo
OS Red Hat Enterprise Linux 5 Server
メモリ 1G
HDD 250G
MySQLバージョン: 5.0.45
開発言語 PHP5

上記のサーバーで運用しています。
一週間、サーバーが異常に重く、全く開かない状態でした。
phpMyAdminを調べていた所、InooDB free 300000kB(約ですが)
となっている事に気づきました。
そこで、不要なデータを削除し、free 450000kB となるぐらいまで
にしたところ、ウソの様に、サクサク動くようになりました。
しかし、データは毎日大量に蓄積されて行きます。
近いうちに、free領域がなくなっていく事は目に見えています。

そこで質問です。

MySqlの使用状況は、
データベースA テーブル数は約70 データサイズ 17M
データベースB テーブル数は約120 データサイズ 231M
たったこれだけのデータです。

1.Mysqlでのデータ保存の領域はどれくらいでしょうか?
  調べる方法はありますか?
  OSなどにもよるが、テラサイズまで格納出来るとあちこちで
  見かけますが、なぜこんなデータ量で固まってしまうので
  しょうか?
  とにかく、至急領域を増やす必要があります。
  方法をお教えいただけないでしょうか?

2.リファレンスから引用
  もし全ての(非システムの)テーブルを InnoDB テーブルとして
  作成したければ、サーバ オプション ファイルの [mysqld]
   セクションにライン default-storage-engine=innodb を
  追加するだけでよいです

  この様に記載されていますが、テーブルの約90%は
  トランザクションが必要なので、InooDBです。
  いっその事、全てのテーブルをInnoDBにしてしまえばと思うの
  ですが、その事により生じるデメリットは?
  また、上記の設定により、MyISAMは作ってはいけなくなると
  いう事でしょうか?

将来的に、G単位のデータを格納する事になります。
この程度のデータ量で、サイトが重くなるようでは
どうしようもありません。
現在、MySqlの設定はデフォルトですので、何もいじってません。
もちろん、今後チューニングも必要かと思いますが、まだ知識がなく
恐くていじる事が出来ていません。

何とぞ、ご教示お願い致します。

A 回答 (1件)

本当に要領の問題か疑問です・・・


MySQLのチューニングについてはEXPAINでトライアンドエラーで
やることになると思います。
また不要なトランザクションやロックが発生しているようなら
場合によってはばっさり切り捨てる勇気も必要です。
(あくまでも不要な場合にかぎりますが)
    • good
    • 0
この回答へのお礼

ありがとうございます。
チューニングやってみました。
CPU使用率が100%超えだったのが、1.2%に下がりました。
これからも勉強してまいります。

お礼日時:2010/03/02 11:38

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