• 締切済み

データの許容量について

環境 Linux Fedoracore 4/MySQL 4.1/Apache 2.0/PHP 5 いつもお世話になっております。 DB初心者です。 業務で管理しているDBについてですが、1つのテーブルあたり50万行を超えたあたりからパフォーマンス(SQL実行速度)が低下しているのが体感できるようになりました。Slowlogでも確認すみ。 テーブル自体は、アクセスログを保存するため、1アクセス1レコードのように追加しています。(構築すみで仕様の変更はできません。) そこで、下記の質問に対してご意見をいただければと思います。 1)MySQLのレコード数が、パフォーマンスに影響のある一定の桁数(僕のサーバでは50万行以上)に達した場合、レコードを消す以外に対処方はありますか? 2)現在のシステムは別として、数10万行にもデータを蓄積する場合、テーブルを分ける、マシンのスペックをあげるなどの具体的な設計思想や対策があれば教えてください。

みんなの回答

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

>50万行 まだそれほど大した量ではありませんね・・・ データ量に相対的にパフォーマンスは落ちますが、 集計方法にあわせた適切なインデックスを設定していますか? チューニングに関してはSQLの構文をEXPLAINで確認してみてください。 http://www.atmarkit.co.jp/fdb/rensai/orasql01/orasql01_2.html#4

SeafooD3
質問者

お礼

50万行は僕が思っているほど大きい数字ではないのですね。 経験が浅いため、わかりませんでした。 ご指摘のようにインデックスは設定しておりませんでした。 適宜設定すると、パフォーマンスが速度としては約2倍に向上しました。 ありがとうございます。もっと勉強していきます。

関連するQ&A