MySQLで1つのテーブルに対して、「フィールド数・レコード数はこのぐらいがいい」という基準はあるのでしょうか?


ここで言う基準というのは、「フィールド数が多いと、処理が遅くなる」「レコード数が多いと、出力時に負荷がかかる」といったものです。

各仕様によって異なるのは当然かと思いますが、ある程度の基準・範囲を把握しておきたいと思い、質問しました。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2007/07/21 13:11:36
  • 終了:2007/07/22 13:42:22

回答(2件)

id:kn1967 No.1

kn1967回答回数2915ベストアンサー獲得回数3012007/07/21 15:47:08

ポイント80pt

パフォーマンスに関わる項目は

(1)ハードウェアの持つ性能
CPUの計算能力、メモリ搭載量、ハードディスク容量・転送能力など
(2)ソフトウェアのチューニング
アクセス制御、バッファサイズなど
(3)データベースの設計
データベースエンジンの選択、テーブルの正規化、適正なインデックス付け、SQLの最適化など

といったような具合で非常に多岐に渡るため一概に言えるような基準は無いです。


基準は無いと言われれば、どのようにすれば良いのかという話になるかとは思いますが、

下記にありますようにクエリのパフォーマンスを推定する事は可能です。

MySQL AB :: MySQL 4.1 リファレンスマニュアル :: 5.2.2 クエリパフォーマンスの推定


ここまでの話で「難しいや!!」と思われたのであれば

(a)インデックスを適切に付けてあればレコード数はネックとはならない。
(b)フィールド数の多い少ないはネックとはならない
(c)結果セットのサイズが大きいとパフォーマンスは低下する
SELECT * FROM ---- といったように不用意に*を使うと
不必要なカラムの内容までバッファメモリ上に置かれるため
パフォーマンスが大きく低下することもある。
レコード数が多ければ多いほど・・・以下同文。

という3点(どのデータベースソフトでも言えることです)だけでもご記憶ください。

MySQLだけの特徴としては

(d)データベースエンジンの選択によってはネックとなる
更新が少ないのであれば検索の早いMyISAM
更新もそこそこ多いのであればトランザクションの使えるInnoDB

などもご記憶を・・・


以上、参考になればよろしいのですがいかがでしょう?

id:kt26

ありがとうございます。かなり的確に・丁寧にご説明いただけたと思います。ぜひ参考にさせていただきます。

2007/07/21 23:53:48
id:KUROX No.2

KUROX回答回数3542ベストアンサー獲得回数1402007/07/22 03:01:44

ポイント80pt

ORACLE、HiRDBで私はそんな話は聞いたことがないので、

DBではあまり意識する必要がないものだと思ってます。

なので、的外れな答えでごめんなさい。

私なら、一般的なDB設計して、性能に問題があれば

SQLのチューニング、インデックスキーの張り方、

MySQL自体の環境設定でなんとかすると思います。


■最大フィールド数

最大のフィールド数、レコード長、等

http://www.mysql.gr.jp/frame/modules/bwiki/?FAQ#content_1_82

■レコード数

|1つの機能で,1億行を超えるデータ量を持つデータベースや,

|1テーブルで20Gバイトを超えるテーブルなど,楽天市場には

|データ量の多いものがたくさんあります。

http://itpro.nikkeibp.co.jp/members/SI/oss/20031007/1/

■テーブルサイズにおける性能

http://itpro.nikkeibp.co.jp/article/NEWS/20070624/275673/

■性能チューニング

http://www.mysql.gr.jp/Manual/mysql-3.21.31/manual_Performance.h...

id:kt26

このようなURL、大変参考になります。じっくり読ませていただきます。ありがとうございました。

2007/07/22 13:41:51

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません