pythonで一意なIDを自動生成する

pythonで一意なIDを自動生成する


 データベースにデータを格納したいときなんかに、他と重ならない(ユニークな)IDを作りたいことが多々あるだろう。
 作り方は色々あるようなのだが、私はUUIDというものを使ってみることにした。


▲UUIDの実行例
 import uuid
 としたあと、
 uuid.uuid4()で使える。簡単だ。
 ランダムに生成されてるみたいだけど、重複することってほんとにないの?と思って調べてみた。

UUIDのサイズは16バイトで,256を16回掛けた数のバリエーションを作り出せます。これがどのくらいかというと,仮に毎秒数億個以上のスピードでUUIDを作ったとしても,人の一生どころか宇宙が誕生してから現在に至るまでの年月(約137億年)作り続けても重複などまずありえないほどです。

 参考)IT Pro UUIDとは
 機器の名前や時刻情報などをもとに充分大きなサイズかつランダムな数値を生成している、とのことだ。うむ、まず重複しないというのはわかったけども、直感的には理解しにくいなあ。137億年って、西暦9999年以降は一体どうやって計算すんだ、2000年問題のときみたいに1万年問題とか起こらないのかとか、余計なことを考えてしまった。
 「まず起こらない」というのは、起こるかも知れないということで、仕事なんかで使うときは上司やお客がその辺を突いてくるに決まっているので、シビアな処理が要求される場合は重複したときの処理を入れておけばいいんじゃないだろうか。