非常に大規模なデータセットを処理し、地面から始める必要がある場合、外部コンサルタントがあなたの会社のより良いサポートになるかどうかはわかりません。誤解しないでください。しかし、多くの顧客を抱えるプロジェクトを台無しにすると、あなたの会社にPRの影響が出ます。
1つのテーブル内の10Mタプルについては、適切なインデックスが作成されていれば問題ありません。ここでは、1つのテーブルに複数の1億個のタプル(販売アイテム)を格納する必要があります。これは、大きなOracle 11gで正常に動作します
Facebookのデータベースデザインのマップを使用した2010年の投稿を次に示します。Facebookデータベースのデザイン
次のようなパーティションタイプに関するmysqlのドキュメントを読むことをお勧めします。MySQLのドキュメント:パーティショニング
MySQLは次のタイプをサポートします。
RANGEパーティショニング。このタイプのパーティショニングは、指定された範囲内の列値に基づいて行をパーティションに割り当てます。セクション18.2.1「RANGEパーティショニング」を参照してください。
LISTパーティショニング。RANGEによるパーティショニングに似ていますが、一連の離散値のいずれかに一致する列に基づいてパーティションが選択される点が異なります。セクション18.2.2「LISTパーティショニング」を参照してください。
ハッシュ分割。このタイプのパーティション分割では、テーブルに挿入される行の列値を操作するユーザー定義の式によって返される値に基づいてパーティションが選択されます。この関数は、非負の整数値を生成するMySQLで有効な任意の式で構成できます。このタイプの拡張機能であるLINEAR HASHも利用できます。セクション18.2.3「ハッシュパーティション化」を参照してください。
キー分割。このタイプのパーティショニングは、HASHによるパーティショニングと似ていますが、評価される1つ以上の列のみが提供され、MySQLサーバーが独自のハッシュ関数を提供する点が異なります。MySQLが提供するハッシュ関数は列のデータ型に関係なく整数の結果を保証するため、これらの列には整数値以外を含めることができます。このタイプの拡張機能であるLINEAR KEYも使用できます。セクション18.2.4「キーパーティション」を参照してください。
I can't believe they would have one global user table with 950 million entries.
私は、そのことはできませんという大きなを。私は大きなテーブルで作業しました。そのかなり一般的な。他のデータがたくさんある場合に検討する他のオプションは、NoSQLデータベースです。