sql >> データベース >  >> RDS >> PostgreSQL

文字列を格納するためにデータ型テキストを使用することの欠点はありますか?

    通常、ありません テキストを使用することの欠点 パフォーマンス/メモリの観点から。それどころか: text 最適です。他のタイプには、多かれ少なかれ関連する欠点があります。 テキスト は、Postgres型システムの文字列型の中で文字通り「優先」型であり、関数または演算子型の解決に影響を与える可能性があります。

    特に、決して char(n)を使用します character(n)のエイリアス )、あなたが何をしているのかを知らない限り。 char または文字 character(1)の略です 、だからすべて同じ。内部名はbpcharです。 (「空白で埋められた文字」の前に立っています)。このタイプは、古いコードおよび標準との互換性のためにのみ存在します。最近ではほとんど意味がなく、メモリを浪費し、問題を引き起こす可能性があります:

    • varcharとcharを比較する
    • PostgresSQLの文字列フィールドの長さ

    varchar(n)を使用できます 長さ修飾子付き( charactervariing(n)のエイリアス )。しかし、 varchar(255) 通常、他のRDBMSから持ち越された誤解を示しており、パフォーマンスにとって局所的に最適である可能性があります。 Postgresでは、長さ修飾子(255) 特別な意味はなく、ほとんど意味がありません。

    • VARCHAR列に任意の長さ制限を追加する必要がありますか?

    varchar(n)の長さ修飾子を変更しようとすると、古いバージョンでさまざまな問題が発生しました。 後で。それらのほとんどは現代のPostgresで軽減されていますが、 text またはvarchar 文字の変化のエイリアス )長さ指定子なし(および CHECK 代わりに制約)これらの問題は発生しませんでした。

    CHECK 制約は同じように高速で、列タイプに依存するビュー、関数、FK制約などに依存する問題を引き起こす可能性が低くなります。また、最大文字長を強制するだけでなく、ブール式に入れることができるすべてのことを実行できます。参照:

    • ビューで使用されるPostgreSQL列を変更する

    最後に、 "char"もあります (二重引用符付き):安価な内部列挙型として使用される単一のASCII文字の1バイトのデータ型。

    text以外はほとんど使用しません Postgresの文字データ用。



    1. 高可用性のためのMariaDBレプリケーションのデプロイ

    2. Oracle SQL Developerでテーブルにコメントを追加する方法は?

    3. SQLでの日時から合計分まで

    4. Postgresジオメトリ形式をWKTに変換します