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

MySQLのINTとUUIDの違い

    UUID ユニバーサル一意識別子を返します (別のDBにインポートした場合も一意になることを願っています)。

    MySQLドキュメントから引用するには(私の強調):

    一方、単純なINT プライマリIDキー(例: AUTO_INCREMENT )は一意の整数を返します 特定のDBおよびDBテーブル用ですが、これは普遍的に一意ではありません (したがって、別のDBにインポートされた場合、主キーの競合が発生する可能性があります)。

    パフォーマンスに関しては、auto-incrementを使用しても目立った違いはないはずです。 UUIDを介して 。ほとんどの投稿(このサイトの作者によるものを含む)は、そのように述べています。もちろんUUID もう少し時間(およびスペース)がかかる場合がありますが、これはほとんどの(すべてではないにしても)ケースのパフォーマンスのボトルネックではありません。 Primary Keyとして列を持つ 両方の選択をパフォーマンスと同等にする必要があります。以下の参照を参照してください:

    1. To UUID UUIDにするかどうか ?
    2. 神話、GUID vsAutoincrement
    3. パフォーマンス:UUID vsAutoincrement Cakephp-mysqlで
    4. UUID MySQLのパフォーマンス?
    5. 主キー:ID s対GUID s(コーディングホラー)

    UUID vsAutoincrement 神話、GUIDを基にしたパフォーマンス結果 vsAutoincrement

    UUID 長所/短所主キー:IDから採用 s対GUID s

    上記の参照を注意深く読み、UUIDを使用するかどうかを決定します 私のユースケースに応じて。そうは言っても、多くの場合、UUID sは確かに望ましいでしょう。たとえば、UUIDを生成できます ■データベースをまったく使用/アクセスせずに、またはUUIDを使用することもありません 事前に計算されている、および/または別の場所に保存されている。さらに、IDを気にすることなく、データベーススキーマやクラスタリングスキームを簡単に一般化/更新できます。 sが壊れて衝突を引き起こす。

    衝突の可能性に関しては、たとえばv4 UUIDS(ランダム)を使用すると、重複を見つける確率103兆バージョン以内-4UUIDは10億分の1です。



    1. 認証プラグイン'caching_sha2_password'を読み込めません

    2. APPARENTDEADLOCK割り当てられていない保留中のタスクの緊急スレッドを作成する

    3. MySQLで現在の日付と時刻を取得するにはどうすればよいですか?

    4. MySQL now()タイムゾーンを変更