JavaのUUIDと自動インクリメントの主キーの強みと弱み

自動インクリメントの主キー

自己増力IDは、データの行に挿入されたときに自動的に前回値+ +1 IDフィールドに従って充填されるように、idフィールドの設計値は、自己増力の形態である場合、テーブルを指定せずにIDです。MySQLデータベースでは、フィールドのSQLステートメントAUTO_INCREMENTによって特定のフィールドのための保証アトミックに主キーとして、エネルギー自給自己増力割り当てIDを、有効にするために使用することができます。


利点


データベースの高速自動番号、および増分成長、保存するために、非常に有益取り出します。

デジタルタイプ、小さなスペースには、それはプログラム転送にも便利です、ソートに簡単です。

非システムによる記録の増加は、フィールドを指定することができない場合は、主キーの重複についてのない心配を行います。

短所


マニュアルの自動増加は、他のシステム・インテグレーションとシステムは、データをインポートするために必要とされている場合は特に、IDがトラブルを表示します指定されたレコードを挿入するので、古いシステムがデジタルであることを提供する発生しません、元のシステムの主キー違反(のIDを確保することが困難ですタイプ)。特に新しいシステムの行は、古いものと新しいシステムが並行して存在し、必要なときに異種データベース別のライブラリ双方向の同期の場合は、エネルギー自給主キーはあなたの悪夢になるとき。

とき、またはカットオーバーシステム統合、異なる主キーの新旧のシステムは、数字キーは、プライマリ・データ・タイプを変更するためにつながるの場合、外部キー表、均等に重大な結果につながる他の変更があります。

システムは、デジタル方式の場合は、インポートした際に、古いデータと新しいデータを区別するために、あなたは、これは古いデータ、デジタルタイプの、自動成長であることを示すために(例えば、古い「O」を、)プライマリキーの古いデータの前に文字のIDを統一プラスすることもできます課題に直面。

UUID

UUID汎用一意識別子(汎用一意識別子)UUIDプロジェクトアプリケーションwww.1b23.comを意味する機械生成、ユニークであり、空間と時間のすべてのマシンで同じ保証に番号を指します。通常、プラットフォームは、生成されたAPIを提供します。換言すれば、特定の範囲内で一意のプライマリ・キーIDを確保します。


利点


データは、分割、マージストレージを表示されたら、のグローバル一意性を達成することができます


短所


エフェクトの挿入速度、および低を使用するためにハードディスクを引き起こし

UUIDの間の数の相対的な大きさの比較は多く遅く、クエリの速度に影響を与えます。

あなたは、インデックスを構築する場合、大きなスペースを占有UUID、もっと、もっと真剣に影響を受けました


おすすめ

転載: blog.51cto.com/14558453/2450575