web-dev-qa-db-ja.com

Mysqlでの自動インクリメントのランダム化

私たちにはデータベースがあり、サービスから注文を受けるたびにテーブルにデータを挿入します。

auto_incrementを使用してIDを生成し、それを使用して注文を割り当てます。これは通常どこでも同じです。

しかし、問題は、この情報がサードパーティベンダーに渡されるため、1日あたりの注文数を追跡できることです。早朝にリクエストを送信し、深夜に別のリクエストを送信して、IDの違いをカウントします。

これは私たちのサービスの洞察情報を与えています。やや複雑なシステムなので、これをランダム化するような複雑な操作はできません。

私の最初のアイデアは、ビットランダムな方法でauto_increment番号を生成することです。

1,2,3,4,5,67,68,69,70,71,133,134,135,136,137,189,190,191,192,193,194

Mysqlがキャッシュを使い果たし、乱数を追加して次のシーケンスを生成するので、それは単純なはずです。

パフォーマンスに影響を与えずにこれを実現するにはどうすればよいですか?

8
Reddy

Rick Jamesによる、mysqlでランダムな一意のIDを生成するメソッドの概要は次のとおりです。 http://forums.mysql.com/read.php?24,425424,425491

概要は非常に包括的であり、5つの異なる戦略を示し、すべての長所と短所をリストします。

5
Hln