あなたの重要な質問は、UUID_SHORT()
時間と空間の中でユニークな価値を生み出すかということでしたUUID()
. MySQL が要求する特別な条件に従う限り、短い答えはイエスです。
長い答えは「はい」ですが、なぜそれを使用したいのですか? の唯一の明白な欠点UUID()
は、その表現がストレージ効率が低く (64 ビット整数ではなく 36 文字の文字列を生成する)、ステートメントベースのレプリケーションでは使用できないことです。しかしUUID()
、MySQL が .NET のために必要とする特別な条件について考える必要がないという大きな利点がありますUUID_SHORT()
。条件が問題にならないことが確実で、1 レコードあたり 224 ビットすべてを節約したい場合は、使用しても問題ありませんUUID_SHORT()
。ただし、特別な条件について懸念がある場合は、おそらくそれを避けるのが最善です.
特殊な条件に対する懸念の程度は、運用環境によって大きく異なります。再起動の合間にシステム クロックを決して逆に設定しないという要件mysqld
は、私にとって大きな懸念事項です。多くの場合、サーバーはクロックを他のタイム ソース ( ntp
UNIX では、Windows ではタイム サービス) と自動同期するように構成されています。この動作が期待どおりに実行されない場合、その状態を保証できない可能性があります。一貫して満たされています。