検索

ホームページ  >  に質問  >  本文

mysql - 分库分表、分区、读写分离 这些都是用在什么场景下 ,会带来哪些效率或者其他方面的好处

天蓬老师天蓬老师2769日前629

全員に返信(2)返信します

  • 巴扎黑

    巴扎黑2017-04-17 16:51:52

    用途/機能

    読み取りと書き込みの分離: データベースの読み取りパフォーマンスを向上させます。
    サブデータベースと垂直テーブルシャーディング: システム負荷を分散し、当初 1 台のマシンで実行されていた作業を複数のマシンで実行できるようにします。
    テーブルの水平分割とパーティション化: インデックス サイズを小さくして、検索を高速化します。

    使用シナリオ

    読み取りと書き込みの分離: 投稿コンテンツ ページを開くには、投稿テーブルと投稿コメント テーブルを選択する必要があり、それぞれ 10 ミリ秒かかります。このデータベースの制限は 1 秒あたり 1,000 クエリです。つまり、このフォーラムには 1 秒あたり 500 件のアクセスしかありません。次に、このデータベースの読み取りと書き込みを分離して、データベースの読み取りパフォーマンスを飛躍的に向上させることができます。

    水平テーブル : 取引履歴、この種のテーブル。 1 年前の情報が照会されることはほとんどないためです。したがって、表を年ごとに水平に分割できます。今年の食卓を最優先にしましょう。これにより、クエリ対象のテーブルのサイズが削減されます。

    サブデータベース: システムが非常に大規模で多くの機能を備えている場合、ユーザー アカウント テーブルに関連しないマーケティング活動テーブルなど、多くの種類のデータベース テーブルが存在します。データベースを 2 つのデータベースに分割し、異なる独立したデータベース サーバーに配置することで、データベースのスループットを 2 倍にすることができます。

    垂直テーブル分割: 一般的なアプリケーション シナリオは記事リスト内にあります。一般的に、記事テーブルにはタイトル、userId、Content などのフィールドがあります。Content フィールドは通常、テキストまたはロングテキストです。他のフィールドは固定長データ型です。データベース最適化ルールは次のとおりであることがわかっています:

    テーブルのすべてのフィールドが固定長タイプの場合、固定長テーブルは動的長テーブルよりもクエリのパフォーマンスが高くなります。

    次に、垂直テーブル分割を使用して、記事テーブルを記事テーブルと記事コンテンツテーブルに分割できます。したがって、記事リスト ページで必要なクエリは、固定長テーブルをクエリするだけで済みます。

    続く

    返事
    0
  • 怪我咯

    怪我咯2017-04-17 16:51:52

    データベーステーブルは一定のレコード数を超えるとパフォーマンスが著しく低下するため、1つのテーブルのデータ量を大きくしすぎないようにして複数のテーブルに分割する必要があります。

    データベース プログラムは、単一のスーパー マシンを購入せずに、複数の安価なマシンを同時に使用してパフォーマンスを向上させるために、大量の IO を通じてデータにアクセスします。

    また、IO のため、通常、読み取りのみを提供することで書き込みの負荷が軽減され、ある程度の冗長性と災害耐性も提供されます。

    返事
    0
  • キャンセル返事