自動インクリメントとUUIDスタイルの本当の違いは何ですか?
autoincはuuidに対してハッキングしやすいと思います
Uuidは、多くのレコードを含むクエリの自動インクリメントよりも低速ですが、大きな違いはありますか?
自動インクリメントとUUIDスタイルの本当の違いは何ですか?
autoincはuuidに対してハッキングしやすいと思います
Uuidは、多くのレコードを含むクエリの自動インクリメントよりも低速ですが、大きな違いはありますか?
主キーは、リレーショナル モデルの観点から非常に重要です
PK は小さいほど良い。そのため、数値PK が最適です。
「ハッキング」されやすいことが懸念される場合は、追加の UUID を自然キーとして追加できます。
それは私がいくつかのプロジェクトで見たもので、魅力的に機能しました。
インクリメント ID 自体は「ハッキングするのは簡単」ではありません。大きなランダム ID を使用すると、隠されている (完全に隠されているわけではありません) エントリ ポイントが提供されるだけです。真の危険があるためには、実装が不十分で悪用可能なソフトウェアが必要です。アドレス バーの URL でわかるように、このサイトは増分 ID を問題なく使用しています。
ただし、セキュリティ上の考えは別として、ランダムな一意の ID は、ユーザーが他の (公開されているとはいえ) コンテンツの URL を簡単に推測できないようにする場合に役立ちます。たとえば、不動産サイトでは、競合他社のエントリを見て、ID を「上下」に移動する可能性を提供したくない場合があります。たとえ、競合他社がすべての検索でそれらを見つけることができたとしてもです。少しの障害は良いことかもしれません。
両方を使用しないのはなぜですか?インデックス作成とリレーションを高速化する数値自動インクリメント キー。外部アクセス用のランダムな UID。
いくつかの考え:
PK 列の長さに注意してください... UUID と GUID は非常に長い... 文字列です。INT または BIGINT 自動インクリメント列でさえ、はるかに小さなスペースで一意性を確保できます。
自動インクリメント列には、テーブル管理に関する独自の問題がいくつかあることに注意してください。テーブルを切り捨て/ドロップ作成すると、自動インクリメントを維持するのが難しくなります。また、MySQL では、1 つのテーブルに対して 1 つの自動インクリメント カラムのみが許可されます。
データで許可されている場合は、インデックス作成とパフォーマンスのために、データから派生したある種の HASH を使用します。