複数のサイズを見てきましたが、MySQLフィールドのサーバーメモリを無駄にしたくありません。MySQLフィールドは、文字数が多すぎるために予約しているスペースが多すぎます。彼らが得ることができる最大のものは何ですか?これはこれから変わるでしょうか?
これは、データ型を制限しすぎることにより、整数オーバーフロー、整数から文字列への移行などが発生する方法です。 128b varcharの数バイトをスプラッシュアウトして、面倒な作業を省きます。ユーザーベースが非常に大きくなり、UIDのデータ型をクランチすることによって節約できるバイト数を心配する必要がある場合は、自分自身が大成功していると考えてください。これは、喜んで解決できる問題です。
短い答えですが、誰もあなたの質問に答えられるとは思いません。「いつまでも」は長い時間であり、それまでにFacebookがいくつのエンティティを奴隷化するかを知っている人は誰でもいます。
私はそれを最もよく言った人からの引用で終わります。
We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil.
—Donald E. Knuth
これが決して変わらないとどうやって確信できますか?それをvarcharにするのが良いでしょう。
現在、FacebookのUIDは64ビット整数です。しかし、私はそれがいつか変わらないことを保証することはできません。