人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

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

●質問者: dingding
●カテゴリ:インターネット ウェブ制作
✍キーワード:Char オーバー サーバ テキスト データベース
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● kurukuru-neko
●40ポイント

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

ないと思います。

例えば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...

◎質問者からの返答

ありがとうございます。

資料を見てみます。


2 ● b-wind
●20ポイント

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

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

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

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

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

◎質問者からの返答

ありがとうございます。

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


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

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

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

◎質問者からの返答

なるほど。

varchar/varchar2で設計します。

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ