世界中のすべての人に、幸福度を 1 から 10 までのスケールで尋ねなければならないと想像してください。誰もが答えます。最大 80 億人いるので、キーに bigint を使用する必要があり (別の DB に ID が既にあり、キーのみが必要であると仮定します)、実際には約 80 億の一意のレコードがあります。次に、レコードごとに 1 から 10 の値を格納する必要があります。ほとんどの DB では、バイト データ型にマップされます (これは単なる仮定であり、0 から 255 のスケールでも幸福度を測定できます)。
80 億人 * (8 バイトのキー + 1 バイトの値) = 64 Gb のキー値 + 8 Gb の値 = 72 Gb の合計サイズ。
SQL Server や MySql などの主流データベースで、同じタスクのストレージ サイズを大幅に削減することは可能ですか?
私はそのような投票を行うつもりはなく、それほど多くのユーザーもいません。大きなキーは、他のいくつかの int キーのデカルト積の結果であり、長期的には、それぞれに単純な数値を持つ何十億ものレコードを持つことができますより小さい ID の組み合わせ。