さんまがおいしい季節だねー(´・ω・`)

TwitterのIDが64bitになったのは知ってるけどぶっちゃけどう対応すりゃえーのん?

Twitter — タグ: , — さくら @ 2010/12/18 0:14

てことで必要にせまられて調べてみますた。

まず知っとかないといけないことは The Twitter Engineering Blog: Announcing SnowflakeREADME.mkd at master from twitter’s snowflake – GitHub にほとんど書かれています。英語読むの面倒な人のために重要なところだけ超訳します。

  1. Twitter の ID は 64bit です。64bit の内訳は、41bit のミリ秒/10bit のマシンID/12bitのマシン毎の連番(と明示されてないけど符号に1bit)です。
  2. ID は大雑把(ミリ秒単位で同一時刻に投稿されたツイートの順序は不定)にソートされています。ソート順序は不変です。

プログラミング視点ですと、64bit 整数(一応符号付きで良いっぽい、詳しくはここ参照)で、ソートキーとして使えるってあたりが必要な情報ですた。

ということなんで MySQL なら BIGINT UNSIGNED にしときゃいいっぽいです。(MySQL は MySQL で BIGINT の扱いに微妙な点があるので UNSIGNED にする意味はあんま無いっぽいですが一応付けといた方が無難かと。)

一応整数値らしいので、文字列で保持するとかは止めといた方が良いと思いまつ。2001年9月9日問題みたいな感じになるかもしれません。

1件のコメント »

  1. NFzgFPeobTbaQMhVeA 9575

    コメント by bZbZBqLAQIjvuxQ — 2014 年 10 月 5 日 @ 17:39

この投稿へのコメントの RSS フィード。 TrackBack URI

コメントする

Copyright © 2017 さくらたんどっとびーず | powered by WordPress with Barecity