15

FacebookがユーザーIDを格納するために使用するデータ型、そのようなフィールドパフォーマンスとスケーラビリティの観点から最適なデータ型は何である必要があります。

int 4バイトを使用する場合、それは十分な大きさではないと思います。8バイトintの場合、各ユーザーに乱数を割り当てる方法、または文字列に同じものを割り当てる方法。

では、スケーラビリティとパフォーマンスを念頭に置いて、ユーザーに修正長のランダムIDを与える最良の方法は何でしょうか。

4

2 に答える 2

14

良い質問。Facebook IDは、ツイートIDと同様に問題を引き起こす可能性があります。どちらも32ビット整数の範囲を超えています。プログラミング言語の詳細と目的(データベース、コードなど)に応じて、floatまたはdoubleを使用することもできますが、私の経験では、それらを文字列にキャストするだけで十分です。

MySQLでは、タグ付けされているように、これらのIDを数値として格納するのに十分な大きさのBIGINTデータ型が提供されます。トリッキーな部分は、これらの値を読み取り、プログラムコードで処理するときです。システムアーキテクチャ/プログラミング言語で許可されている最大値を超えるものは、エラーを引き起こしたり、切り捨てられて不整合を引き起こす可能性があります。

MySQLで固定長の大きなIDを使用する場合は、CHAR型とHEX形式を使用するか、UUID形式を使用することをお勧めします。

于 2013-03-04T20:31:52.847 に答える
13

BIGINT(64)を使用して、FacebookユーザーIDをMySQLデータベーステーブルに保存します。
どうぞ:https ://developers.facebook.com/blog/post/45/

于 2015-03-16T07:34:43.420 に答える