データローカリティテーブルとルートテーブルは、MySQLまたはPostgreSQLの概念ではないため、なぜCloud Spannerで重要ですか。データのローカリティとは何ですか?また、Cloud SpannerとMySQLの違いは何ですか?
クラウドスパナのスキーマ設計では、プライマリキーを選択することが非常に重要になると思われます。
データローカリティテーブルとルートテーブルは、MySQLまたはPostgreSQLの概念ではないため、なぜCloud Spannerで重要ですか。データのローカリティとは何ですか?また、Cloud SpannerとMySQLの違いは何ですか?
クラウドスパナのスキーマ設計では、プライマリキーを選択することが非常に重要になると思われます。
私は、データのローカリティとルートテーブルは、Cloud Spannerと同じようにMySQLやPostreSQLでも重要だと思いますが、それらは別々に呼び出されます。
クラウドスパナは非常に大きなデータベース用に設計されており、多くの従来のデータベースサーバーを使用して実装することが可能であることを理解することが重要です。この問題に対する通常のアプローチは、MySQLまたはPostreSQLを使用するときに、断片を作成することです。あなたは、あなたのデータをより多くの小さなものに分割し、そのようなすべてを別のサーバーに置く必要があります。もちろん、そのような解決策は、実装および維持することは非常に複雑です。
Google Cloud Spannerが自動的に行いますが、このシャーディングの管理方法を理解することが重要です。スパナのすべての断片は分割と呼ばれます。スパナでは、分割にはルートテーブルの行とすべての子が含まれている必要があります。ルートテーブルを決定することによって、潜在的なスプリット境界が定義されます。分割の数、スプリット間でのデータの移動などについては心配する必要はありません。
すべてのテーブルをルートにすると、Spannerはシャーディングに完全な柔軟性を持ちますが、その価格。シャード間の一貫性を維持することは困難です。これは、複数のMySQLまたはPostreSQLサーバで同時にトランザクションを実行するのと同様に考えることができます。可能ですが、簡単ではありません。スパナはそれを自動的に行いますが、パフォーマンス上のペナルティがあります。
あなたはSchema and Data Model documentation
にこのモデルの詳細を読むことができる主キーはスパナアーキテクチャでも重要です。主キーに基づいて分割するためにルートテーブルの行を割り当てます。連続するキーは同じ分割に に行くことができます。短時間にそのような行で多くのトランザクションを行う場合は、おそらくより多くの分割に分散されることを望みます。あなたは、単一のサーバー上のデータを合うことができる場合は、MySQLやPostgreSQLのすべてのこれらの概念が表示されていないもちろんBest practices
で詳細を読むことができます;)
を