sql >> データベース >  >> RDS >> Mysql

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

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

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

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

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

    あなたが研究できるよく知られた例は、Instagramが初期の頃にどのようにパーティション分割を解決したかです(以下のリンクを参照)。彼らは、Postgresを使用して最初からデータを分割し、ごく少数のサーバーでパーティション分割を開始しました。私はそれがそれらのいくつかの物理的な破片の数千の論理的な破片だったと信じています。 2012年の素晴らしい記事をここで読んでください:Instagramエンジニアリング-シャーディングとID>

    こちらもご覧ください: http://www.quora。 com / Whats-the-difference-between-sharding-and-partition



    1. SQL参加の質問

    2. 表で類似の番号パターンを見つける

    3. Mysqli UPDATESETWHERE構文エラー

    4. mySQLでのPostgreSQLのdate_trunc