違いはありません。内部ではすべてvarlena
です。 (可変長配列)。
Depeszのこの記事を確認してください:http://www.depesz.com/index.php/2010/03/02/charx-vs-varcharx-vs-varchar-vs-text/
いくつかのハイライト:
まとめると:
- char(n)–
n
より短い値を処理するときにスペースを取りすぎます (それらをn
にパディングします )、末尾にスペースを追加するために微妙なエラーが発生する可能性があり、さらに制限を変更するのは問題があります- varchar(n)–ライブ環境で制限を変更するのは問題があります(テーブルを変更するときに排他ロックが必要です)
- varchar –テキストと同じように
- テキスト–私にとっては勝者 –問題がないため(n)以上のデータ型、およびvarchar以上–明確な名前があるため
この記事では、4つのデータ型すべての挿入と選択のパフォーマンスが類似していることを示すために、詳細なテストを行っています。また、必要に応じて長さを制限する別の方法についても詳しく説明します。関数ベースの制約またはドメインは、長さの制約を即座に増やすという利点を提供し、文字列の長さの制約を減らすことはまれであることに基づいて、depeszは、通常、それらの1つが長さの制限に最適であると結論付けます。