2016-10-14 5 views
0

プライマリキー(user_id、follower_id)を持ち、インデックスに(follower_id)を持っているシンプルフォロアテーブルを分割する最良の方法は何でしょうか?mysqlのシンプルフォロワーテーブルを分割する

user_idとfollower_idの両方でselectクエリを実行します。 user_idに基づいてデータを分割すると、同じテーブル内のfollower_idに基づいて完全な結果を取得することはできません。 フォローフォロワテーブルを分離するためにテーブルを複製し、それぞれのプライマリキーに基づいて各テーブルを分割することはオプションのようですが、わかりません。

現在、このテーブルには1,000万レコードがあり、急速に拡大しています。

答えて

0

PARTITIONingは、パフォーマンス上の利点はありません。実際、処理が遅くなることがあります。 PARTITIONが有益であるところの4つのuse casesがあります。あなたの説明はそれらの1つではないようです。

user :: follower relationshipは対称ですか?つまり、私があなたに「追いかけている」なら、あなたは必然的に私に「追いかけていますか? (その答えは、データを構成する別の方法につながる可能性があります)。hereのガイドラインに従ってください。多くの場合、多くの関係があります。おそらくあなたは1つの "ユーザー"テーブルを持っており、そのテーブルとそれ自身の間に関係があります。

私は、まだ非パーティション化と多くの:多くのテーブルに何か問題があるのか​​分かりません。あなたは何を心配していますか?

さらに討議するには、暫定的にCREATE TABLESELECTsと入力してください。