私の連絡先情報
郵便メール:
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
MySQL クラスターをご存知ですか? マスター/スレーブ レプリケーション プロセスを理解していますか?この記事は面接の質問を紹介することに重点を置いており、すべてのプログラマーが参加できることを願っています。 ! !
オンライン環境では、通常、Mysql の高可用性と読み取り/書き込み分離を実現するために、1 つのマスターと 1 つのスレーブ、または 1 つのマスターと複数のスレーブを持つ Mysql インスタンスをデプロイします。Mysql のマスターとスレーブの同期は、binlog ログを通じて実行されます。
Mysqlマスタースレーブクラスタの構築については、ブロガーによる以下の記事を参照してください。
リレーショナル データのストレージとして、単一のテーブルのデータ量が 3,000 万を超えると、MySQL にはパフォーマンスのボトルネックが発生します。同様に、単一の MySQL インスタンスによってサポートされるクライアント接続と同時実行性にも、現時点ではシステムが一定のボトルネックを抱えることになります。サブデータベースやサブテーブルの技術を利用して実装することを検討してください。
たとえば、今日のマイクロサービスは、それぞれのマイクロサービス モジュールが独自の MySQL データベース インスタンスに接続されており、ビジネスに応じて異なるテーブルを異なるライブラリに分割していることが特徴です。さまざまなレベルでデータを拡張し、同時実行性が高い場合はディスク I0 とデータ ボリュームの接続を増加します。
フィールドに基づいて、さまざまなフィールドがフィールド属性に従ってさまざまなテーブルに分割されます。ホット データとコールド データを分離し、IO 遷移の競合を減らし、2 つのテーブルが相互に影響を与えないようにすることができます。
1 つのライブラリのデータを複数のライブラリに分割します。これにより、多数の単一ライブラリと高い同時実行性によるパフォーマンスのボトルネック問題が解決され、システムの安定性と可用性が向上します。
1 つのテーブルのデータを複数のテーブルに分割します (同じライブラリ内に含めることもできます)。単一テーブル内の過剰なデータ量によって引き起こされるパフォーマンスの問題を最適化し、IO 競合を回避し、テーブル ロックの可能性を減らします。
spring-cloudで管理するspring-boot上に業務に応じたデータベースインスタンスを構築し、垂直パーティショニングを実施しました。大量のデータの保存に対処するために、私たちのプロジェクトでは Mycat ミドルウェアを使用してデータベースとテーブルを分割しています。
Mycat のインストールと Spring-Boot の統合:
データベースがテーブルに分割されると、データが複数のデータベースの複数のテーブルに保存されるため、分散トランザクション、分散グローバル ID、ルーティング ルール設定、およびクロスノード ページングの問題が発生します。
この記事では、Mysql クラスター、サブデータベース、テーブルに関するインタビューの質問をいくつか整理します。