メインコンテンツまでスキップ
バージョン: Latest-4.1

uuid_v7_numeric

LARGEINT 型の時間順序付き UUID v7 を返します。UUID v7 は RFC 9562 で定義されています。ランダムに生成される UUID v4 と比較して、UUID v7 は時間順序を保持するため、データベースにおいてインデックスの局所性が向上し、断片化が軽減されるなど、より高いパフォーマンスが期待できます。

本関数は UUID v7 を文字列形式ではなく、128 ビット整数(LARGEINT) として返します。そのため、保存や比較処理においてより効率的です。

この関数は非決定性関数であり、呼び出すたびに異なる UUID を生成します。

構文

uuid_v7_numeric()

戻り値

LARGEINT 型(128 ビット整数) の値を返します。

mysql> SELECT uuid_v7_numeric();
+---------------------------------------+
| uuid_v7_numeric() |
+---------------------------------------+
| 2088748395792837468371928374619283746 |
+---------------------------------------+
1 row in set (0.01 sec)

利点

  1. 時間順序付き:後から生成された UUID は、以前のものより大きな値になります。
  2. インデックス性能の向上:B-tree インデックスにおける局所性が向上します。
  3. 断片化の軽減:順次挿入によりページ分割が減少します。
  4. 一意性の確保:ランダムビットにより、同一ミリ秒内でも重複を防ぎます。
  5. 効率的な保存:数値形式は文字列形式よりコンパクトになる場合があります。

uuid_numeric との比較

項目uuid_numeric() (v4)uuid_v7_numeric() (v7)
順序性ランダム時間順序付き
インデックス性能低い高い
断片化高い低い
タイムスタンプ情報なしあり(48 ビットのミリ秒)
Rocky the happy otterStarRocks Assistant

AI generated answers are based on docs and other sources. Please test answers in non-production environments.