2011-01-14 12 views
7

私は、5.0.3より大きいバージョンのMySQLでは、255より大きい値を持つvarcharを宣言することができることに気がつきました。これまでは255より大きい値のデータ型を切り替えましたが、 varchar(1000)または適切な長さを使用して、より大きな文字列値を定義するようになりました。MySQLで255より大きい値を持つVARCHARを宣言することは賢明ですか?

他のデータベースと同じことが今のようですか、それとも最大値として255を使用し、その上のデータ型を変更するのが最も良いですか?

+6

この質問をご覧になりたい場合があります:http://stackoverflow.com/questions/2023481/mysql-large-varchar-vs-text –

+0

ありがとうございました。私の質問に十分に近い。 – ahanson

答えて

4

@Ericが指摘しているように、VARCHARはテーブルに格納され、TEXTは別のファイルに格納されます。テーブル構造を設計するときに覚えておかなければならない唯一の重要なポイントは、 MySQLは各行/レコードを制限します。〜65 KB)。

"ワンライナー"にはVARCHARを使用することをお勧めします。データソースとしてテキスト入力があるものをお勧めします。

6

私の意見では、私はアプローチすることをお勧めしません。 255文字以上必要な場合は、TEXTを使用する方が適切です。

更新: VARCHARは現在65535バイトに制限されていますが、MySQLの行は65535バイトを超えることはできません。

VARCHARとそのようなフィールドは、たとえばTEXTがその行にリンクしている行の中にポインタが格納されている場合にデータベースに直接格納されることを知る必要があります。

大きなVARCHARを使用する場合は、大きすぎないようにして、行内の残りのデータに干渉しないようにしてください。

たとえば、最大65Kのcharを含む可能性のある複数のVARCHARフィールドを持つことは悪い考えです。

+2

なぜ説明するのが気になる?あなたが間違っているというわけではなく、それははるかに良い答えになるでしょう。 – dkarp

+0

私のアンサーを更新しました。 –

5

VARCHARの列は65,535バイトに制限されていますが、使用する文字セットによっては65535文字になることはありません。

1文字あたり1バイトの文字セットlatin1を使用している場合は、必要な記憶容量と同じ文字列の長さが原因で問題にはなりません。

マルチバイト文字を格納する文字セットを使用する場合は、文字セットで許可される長さにしか設定できません。たとえば、utf8文字セットの最大長は21,844文字です。

関連する問題