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

PostgreSqlテーブルのUUID、CHAR、およびVARCHARのパフォーマンスの違いは?

    uuidを使用する 。 PostgreSQLには理由からネイティブタイプがあります。

    これは、uuidを128ビットのバイナリフィールドとして内部に格納します。他の提案されたオプションはそれを16進数として保存しますが、これは比較すると非常に非効率的です。

    それだけでなく、:

    • uuid 順序付けのために単純なバイト単位のソートを行います。 テキスト char およびvarchar 照合とロケールを検討してください。これは、uuidには無意味です。

    • uuidの正規表現は1つだけです。 。同じことはテキストなどには当てはまりません。大文字と小文字の16進数、 {...-...}の有無を考慮する必要があります。 sなど

    疑問の余地はありません。 uuidを使用する 。

    意味のある他のタイプはbyteaだけです。 、少なくともuuidの16バイトを直接格納するために使用できます。これは、ある種の本当にばかげたORMのように、基本セット以外のデータ型を処理できないシステムを使用していた場合に行うことです。



    1. 複数のテーブルにわたるsum()結果を使用したMYSQL更新

    2. レベル2で指定された数の値のみを持つレベル1のすべてのレコードを取得します

    3. *すべて*の一致するカテゴリを持つアイテムを見つける方法

    4. MySQLでSTRICTSQLモードを取り除く方法