データベースのシャーディングとパーティショニング 質問する

データベースのシャーディングとパーティショニング 質問する

最近、スケーラブルなアーキテクチャについて読んでいます。その中で、データベースに関して頻繁に登場する 2 つの単語は、シャーディングパーティショニングです。説明を調べましたが、それでも混乱してしまいました。

StackOverflow の専門家が、基礎を正しく理解するのを手伝ってくれませんか?

  • シャーディングパーティショニングの違いは何ですか?
  • 「すべてのシャード データベースは基本的に (異なるノードに) パーティション化されていますが、すべてのパーティション化されたデータベースが必ずしもシャード化されているわけではありません」というのは本当ですか?

ベストアンサー1

パーティショニングは、テーブルまたはデータベース間でデータを分割する一般的な用語です。シャーディングはパーティショニングの 1 つの特定のタイプであり、水平パーティショニングと呼ばれるものの一部です。

ここでは、何らかのロジックまたは識別子を使用して、どのインスタンスまたはサーバーでデータを検索するかを認識し、(通常は) 複数のインスタンスまたはサーバーにスキーマを複製します。この種の識別子は、多くの場合、「シャード キー」と呼ばれます。

一般的なキーレス ロジックは、アルファベットを使用してデータを分割することです。AD はインスタンス 1、EG はインスタンス 2 などです。顧客データはこれに適していますが、一部の文字が他の文字よりも一般的であることをパーティション分割で考慮しないと、インスタンス間でサイズが多少誤って表現されます。

もう 1 つの一般的な手法は、インスタンス間で一意のキーを確保するキー同期システムまたはロジックを使用することです。

研究できる有名な例として、Instagram が初期の頃にパーティショニングを解決した方法があります (以下のリンクを参照)。彼らは、最初から Postgres を使用してデータを分割し、非常に少数のサーバーでパーティショニングを開始しました。それらの少数の物理シャードに数千の論理シャードがあったと思います。2012 年の素晴らしい記事をここでお読みください。Instagram エンジニアリング - シャーディングと ID

こちらも参照してください:http://www.quora.com/シャーディングとパーティションの違いは何ですか?

おすすめ記事