使用目的によって異なります。 私はそのような一般的な答えを与えるのは嫌いですが、それは本当です。一般に、できるだけ具体的なデータ型を取得するようにしてください。文字列が文字の上限を超えない場合は、VARCHAR
を使用してください もう少し効率的になるからです。より多くのスペースが必要な場合は、TEXT
を使用してください 。テキストが占めるスペースがわからない場合は、おそらくTEXT
を使用する必要があります。;パフォーマンスの違いはそれほど大きくはありません。要件が変更されたときに後で変更しなければならないリスクよりも、将来にわたって利用できるようにすることをお勧めします。ちょうど私の2セント。
コメントの中で、Pitarouは、MySQLがクエリの一時テーブルを作成する場合(これ
)、TEXT
列はメモリに保存されず、ディスクから読み取る必要がありますが、これははるかに低速です。 (ソース
、ページの下部。)ただし、これはほとんどのクエリでは問題になりません。
PostgreSQLがどのように比較されるのか疑問に思っている人のために、このベンチマーク これは、CHAR、VARCHAR、およびTEXTがすべて同等に機能することを示しています。したがって、Postgresを使用している場合は、使用するタイプは関係ありません。