データベースの型について。

テキストで100文字くらい入りそうな項目の型を
TEXT型にする場合と、char(200)にする場合と、char(1000)にする場合で、サーバの負荷や処理速度の違いは多少あるのでしょうか?

設計の時点で絶対にオーバーしないけど、大きすぎないくらいのバイト数で設計しておくのがベストなのでしょうか?その場合、例として挙げたものはどのくらいにしておくべきでしょうか?

回答の条件
  • 1人3回まで
  • 登録:
  • 終了:2006/11/10 19:57:50
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答3件)

id:kurukuru-neko No.1

回答回数1844ベストアンサー獲得回数155

ポイント40pt

データベース・データの特性によるので最適値は

ないと思います。

 

例えば100文字としても英語? 日本語? 多国後?

DB内部がunicodeとしてもUCS-2/UCS-4/UTF-8,16等

特性があります。

又検索条件のキーになる場合、データベース索引の

容量も影響します。

>大きすぎないくらいのバイト数で設計しておくのが

>ベストなのでしょうか

データ件数が多い場合はそうです。

可変で処理する場合大抵のDBは

charは固定のデータ領域確保

varcharは可変でデータ確保

DBの特性によりますが検索した少し古いですが

DB2のデータベース物理設計のガイドがありました。

http://www-06.ibm.com/jp/software/data/db2univ/data/v8dg_physica...

id:dingding

ありがとうございます。

資料を見てみます。

2006/11/10 19:07:54
id:b-wind No.2

回答回数3344ベストアンサー獲得回数440

ポイント20pt

char 型だと固定長なので、1文字入れるだけでも確保した全領域を使用し、容量効率が悪いです。

そのため一般には varchar(varchar2)かtext 等の可変長を使う事が多いですが、以下のように性能的なメリットが見出せる場合もあります。

http://dev.mysql.com/doc/refman/4.1/ja/static-format.html

静的(固定長)テーブルの特性
中略
この形式は最も単純かつ最も安全です。また、ディスク上の形式としては最も高速です。速度が速いのは、ディスク上で簡単にデータを検出できるためです。検索の対象がインデックスと静的形式を使用している場合、操作はきわめて単純です。単にレコードの番号にレコードの長さを掛けるだけです。 

自分は細かい調整が面倒なので、よほどのレコード数が見込まれている場合以外は TEXT 型にしてしまう事が多いです。

id:dingding

ありがとうございます。

よほどのレコード数が見込まれる場合は、絶対にオーバーしないけど、大きすぎないくらいのバイト数で設計しておくのでしょうか?

2006/11/10 19:46:05
id:b-wind No.3

回答回数3344ベストアンサー獲得回数440

ポイント20pt
よほどのレコード数が見込まれる場合は、絶対にオーバーしないけど、大きすぎないくらいのバイト数で設計しておくのでしょうか?

DBと用件定義にもよりますが、基本そんな感じです。

ただ、varchar/varchar2 等の可変長を使う事が前提ですが。

id:dingding

なるほど。

varchar/varchar2で設計します。

ありがとうございました。

2006/11/10 19:57:04

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

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

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

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

回答リクエストを送信したユーザーはいません