概要
データベースのシャーディングとテーブルのシャーディング後に設計される最初の問題は、ルーティング キーの選択方法とキーのルーティング方法です。ルーティング キーは存在し、各テーブル内で一意である必要があります。ルーティング戦略では、データが均等に分散されるようにする必要があります。
大量のデータをアーカイブする場合は、ルーティング キーとして時間を選択できます。たとえば、データの作成時刻をルーティング キーとして使用して、月ごとまたは四半期ごとにテーブルを作成します。データベースとテーブルをシャーディングした後、時間をルーティング戦略として使用すると、データのアーカイブが実現できます。履歴データのアクセス トラフィックは少なく、トラフィックは最新のデータベース テーブルに送信されます。
ビジネス関連のルーティング キーを設計することもできます。これにより、各データベースのリソースがトラフィックに十分耐えられることが保証されます。
サポート シナリオ
ユーザーの観点から見ると、テイクアウト注文プラットフォームはデータベースとテーブルに分割された後、注文されたテイクアウト注文のステータスのリアルタイム表示と追跡をサポートする必要があります。注文情報。販売者は注文情報を照会し、注文を通じて料理の品質を分析し、ビジネス上の意思決定を行う必要があります。
ユーザー消費者 = C 側販売業者 = B 側
ユーザーが注文した後、注文が失敗する可能性があります異なるテーブルに分割する場合、クエリ時に複数のテーブルをクエリする必要がある場合があります。
ルーティング戦略
注文の作成時に注文がテーブルにランダムに挿入される場合、または注文がどのテーブルに挿入されるかわからない場合は、クエリを実行するときにすべての注文をクエリする必要があるテーブルはクエリの正確さを保証できます。
注文を挿入するときに特定のルールがある場合、注文はこのルールに従ってデータベースに挿入され、クエリの際には、対応するルールも実行されて対応するテーブルがクエリされます。これにより、データ操作の複雑さが軽減されます。ユーザーと販売者の両方は、データをクエリするときに同じルーティング戦略に従うことができます。これは、ルーティング戦略を設計することで実現できます。
顧客ルーティング キー
前のセクションのルーティング戦略分析に従って、ここで、顧客ルーティング キーを選択する必要があります。ルーティングキー 。クライアントでは、同じ ユーザー ID のデータを固定テーブルに保存できるため、ユーザー ID をルーティング キーとして選択できます。
単一データベースの場合、ユーザーは注文を出し、注文を生成し、ユーザー ID をルーティング キーとして使用し、user_id のハッシュ値を取得し、テーブル数の剰余を取得します。ルーティングが必要な対応するテーブルを取得し、データを入力します。
#複数のデータベースと複数のテーブルの場合は、まず対応するデータベースを見つけてから、対応するテーブルを見つける必要があります。複数のデータベースと複数のテーブルのルーティング戦略: ユーザーが注文する -> 注文を生成する - > ルーティング戦略: ユーザー ID のハッシュ値に基づいてデータベースの数をモジュロして、対応するデータベースを見つける -> ユーザーのハッシュ値を割るテーブルの数のペアによる ID、および対応するテーブルを見つけるためのテーブルの数のモジュロ。
ルーティング戦略設計の重要なポイントは、特定のビジネス シナリオに従って設計し、ユーザーとより密接に関係するルーティング キーとしてハッシュ値モジュロを使用することです。 information
MERCHANT ROUTING KEY
別個のテーブル セットがマーチャント B 側用に設計されています (C 側と B 側は独立しています)。
ユーザーの観点では user_id をルーティング キーとして使用し、販売者の観点では販売者の ID をルーティング キーとして使用します。販売者はルーティング キーを介してデータをどのようにルーティングしますか。注文を行うと、Youhu はチームメイトの注文番号を MQ に送信します。販売者はこの MQ を使用し、注文番号に基づいて注文情報を取得し、その注文情報を販売者のデータベース テーブルに挿入できます。販売者の ルーティング ポリシー とユーザーの ルーティング ポリシー は同じです。
クライアントとマーチャントの完全なデータ フロー図:
以上がMySQL データベースとテーブルのパーティショニング後のルーティング戦略設計の分析例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

MySQLの遅いクエリを識別することは、遅いクエリログを有効にし、しきい値を設定することで実現できます。 1.スロークエリログを有効にし、しきい値を設定します。 2.スロークエリログファイルを表示および分析し、詳細な分析のためにMySQLDumpSlowやPT-Query-Digestなどのツールを使用します。 3.インデックスの最適化、クエリの書き換え、およびselect*の使用を回避することで、遅いクエリの最適化を実現できます。

MySQLサーバーの健康とパフォーマンスを監視するには、システムの健康、パフォーマンスメトリック、クエリの実行に注意する必要があります。 1)システムの健康を監視する:Top、HTOP、またはShowGlobalStatusコマンドを使用して、CPU、メモリ、ディスクI/O、ネットワークアクティビティを表示します。 2)パフォーマンスインジケーターの追跡:クエリ番号あたりのクエリ番号、平均クエリ時間、キャッシュヒット率などのキーインジケーターを監視します。 3)クエリ実行の最適化を確保します:スロークエリログを有効にし、実行時間が設定されたしきい値を超えるクエリを記録し、最適化します。

MySQLとMariaDBの主な違いは、パフォーマンス、機能、ライセンスです。1。MySQLはOracleによって開発され、Mariadbはフォークです。 2. Mariadbは、高負荷環境でパフォーマンスを向上させる可能性があります。 3.MariaDBは、より多くのストレージエンジンと機能を提供します。 4.MySQLは二重ライセンスを採用し、MariaDBは完全にオープンソースです。既存のインフラストラクチャ、パフォーマンス要件、機能要件、およびライセンスコストを選択する際に考慮する必要があります。

MySQLはGPLライセンスを使用します。 1)GPLライセンスにより、MySQLの無料使用、変更、分布が可能になりますが、変更された分布はGPLに準拠する必要があります。 2)商業ライセンスは、公的な変更を回避でき、機密性を必要とする商用アプリケーションに適しています。

Myisamの代わりにInnoDBを選択する場合の状況には、次のものが含まれます。1)トランザクションサポート、2)高い並行性環境、3)高いデータの一貫性。逆に、Myisamを選択する際の状況には、1)主に操作を読む、2)トランザクションサポートは必要ありません。 INNODBは、eコマースプラットフォームなどの高いデータの一貫性とトランザクション処理を必要とするアプリケーションに適していますが、Myisamはブログシステムなどの読み取り集約型およびトランザクションのないアプリケーションに適しています。

MySQLでは、外部キーの機能は、テーブル間の関係を確立し、データの一貫性と整合性を確保することです。外部キーは、参照整合性チェックとカスケード操作を通じてデータの有効性を維持します。パフォーマンスの最適化に注意し、それらを使用するときに一般的なエラーを避けてください。

MySQLには、B-Treeインデックス、ハッシュインデックス、フルテキストインデックス、空間インデックスの4つのメインインデックスタイプがあります。 1.B-Treeインデックスは、範囲クエリ、ソート、グループ化に適しており、従業員テーブルの名前列の作成に適しています。 2。HASHインデックスは、同等のクエリに適しており、メモリストレージエンジンのHASH_TABLEテーブルのID列の作成に適しています。 3。フルテキストインデックスは、記事テーブルのコンテンツ列の作成に適したテキスト検索に使用されます。 4.空間インデックスは、地理空間クエリに使用され、場所テーブルのGEOM列での作成に適しています。

tocreateanindexinmysql、usethecreateindexstatement.1)forasinglecolumn、 "createdexidx_lastnameonemployees(lastname);" 2)foracompositeindexを使用して、 "createindexidx_nameonemployees(lastname、firstname);" 3); "3)、" 3)を使用します


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

ホットトピック









