通常、データは、サーバー間のJOINSをまったく回避できる方法でシャードで分割されます。この操作は難しく、費用がかかるためです。例が架空のものである場合は、すべてのデータをuser_idフィールドまたはuser_group_idで分割することをお勧めします。
たとえば、シャードAには、user_id%3 =0、シャードB-user_id%3 =1、シャードC-user_id%3 =2のユーザーからの情報を含むすべてのテーブルが含まれます。したがって、必要なJOINSのほとんどは1つのシャード内にあります。一部の複雑なクロスサーバークエリでは、memcachedやRedisなどの一般的なNO-SQLストレージがあり、すべてのシャードから必要なデータのコピーがあります(もちろん、すべてのテーブルの完全なコピーではありません)。このようなストレージは、必要な数のサーバーに簡単に複製できます。これが高負荷プロジェクトの仕組みです。