0

データベースにデータをすばやく挿入する関数があり、関数ごとに一意の整数も格納する必要があります。

丸められたマイクロタイムの使用を検討していましたが、同時に複数のスクリプトが実行されているため、競合が発生するのではないかと心配しています。

誰かが解決策を推奨できますか?

4

2 に答える 2

1

実際、データベースによって ID を増分的に生成するメカニズムを好むはずです。

Python 側でランダム ID を生成するには、uuid モジュールを参照してください。

このモジュールは、不変の UUID オブジェクト (UUID クラス) と、RFC 4122 で指定されているバージョン 1、3、4、および 5 の UUID を生成するための関数 uuid1()、uuid3()、uuid4()、uuid5() を提供します。

RFC 4122 [強調鉱山]に従って:

この仕様は、GUID (Globally Unique IDentifier) とも呼ばれる UUID (Universally Unique IDentifier) の Uniform Resource Name 名前空間を定義します。 UUID は 128 ビットの長さで、空間と時間全体で一意性を保証できます。 UUID は、最初は Apollo Network Computing System で使用され、後に Open Software Foundation (OSF) の Distributed Computing Environment (DCE)、そして Microsoft Windows プラットフォームで使用されました。

この仕様は、OSF (現在は The Open Group として知られています) の親切な許可を得て、DCE 仕様から派生しています。DCE 仕様の以前のバージョンからの情報は、このドキュメントに組み込まれています。

于 2013-03-11T08:17:27.890 に答える
0

考えられるアプローチはいくつかあります。

  1. 一意の ID の生成をデータベース エンジンに委任します。多くのエンジンがそのような機能を提供します。
  2. ID を生成する独自の集中型サービスを用意し、スクリプトがそのサービスと通信するようにします。
  3. 各スクリプトに独自の ID を生成させます。一意性を確保するために、スクリプトに固有のトークンを id に組み込みます (例: プロセス ID および/または IP または MAC アドレス)。
于 2013-03-11T07:57:44.610 に答える