PHP と MySQL を組み合わせて数千万のデータ処理を完了

coldplay.xixi
リリース: 2020-12-22 17:55:20
転載
3971 人が閲覧しました

#PHP MySQL 列では、数千万のデータ処理を実現する方法について説明します

PHP と MySQL を組み合わせて数千万のデータ処理を完了

推奨 (無料):

PHP MySQL

mysql サブテーブルのアイデア

1 億の注文テーブルを 5 つのテーブルに分割すると、各テーブルには 2,000 万件のデータのみが含まれ、元のテーブルと負担が共有されます。サブテーブルは、特定の条件に従って分割する必要があります。ここでは、次に従って分割できます。 テーブルをリージョンごとに分割するには、必要なデータを見つけるためにどのテーブルに移動するかを制御するミドルウェアが必要です。 ミドルウェア: メインテーブルの自動インクリメント ID をミドルウェアとして使用します (どのフィールドがミドルウェアに適していますか? 一意である必要があります)
配布方法は?メイン テーブルに挿入した後、ID が返され、この ID とテーブルの数に基づいて剰余が取得され、残りがどちらかのテーブルにデータが挿入されます。
注: サブテーブルの ID はメイン テーブルの ID と一致している必要があります。
将来的には、挿入操作のみがメイン テーブルを使用します。変更、削除、読み取りには使用する必要はありません。

PHP 结合 MySQL 千万级数据处理

redis メッセージ キュー1. メッセージ キューとは何ですか?

メッセージ伝播プロセス中にメッセージを保存するコンテナ

2、メッセージ キューが生成される歴史的な理由

PHP 结合 MySQL 千万级数据处理メッセージ キューの特徴: まず、 first out

実行された SQL ステートメントは、最初にメッセージ キューに保存され、その後、スムーズかつ非同期でデータベースに順次挿入されます。

アプリケーション: Sina、最初にインスタント コメントをメッセージ キューに入れてから、SQL を挿入します。スケジュールされたタスクを通じてメッセージ キュー内のステートメントを順次実行します。データベース

ModifyOperationサブテーブルに移動して変更します

PHP 结合 MySQL 千万级数据处理このように修正します 問題があります。メインテーブルとサブテーブルのデータが不整合になります。メインテーブルとサブテーブルのデータを整合させるにはどうすればよいですか?

#Redis キューはメイン テーブルとサブテーブルのデータの一貫性を保ちます変更が完了すると、メイン テーブルのデータは変更され、redis キューに保存されます

次に、Linux スケジュールされたタスク (contble) がループして Redis キュー内の SQL ステートメントを実行し、メインテーブルの内容を同期的に更新します。 PHP 结合 MySQL 千万级数据处理

PHP 结合 MySQL 千万级数据处理

mysql 分散テーブル (クエリ、削除)クエリはサブテーブルをクエリするだけで済みます。メインテーブルではなくテーブル

削除するには、まず ID に基づいて削除するサブテーブルを見つけて削除し、SQL ステートメントをプッシュして合計を削除します。テーブル データをメッセージ キューに追加します。PHP 结合 MySQL 千万级数据处理次に、スケジュールされたタスクを実行してテーブル データ全体を削除します


スケジュールされたタスク: PHP 结合 MySQL 千万级数据处理

PHP 结合 MySQL 千万级数据处理

##mysql 分散サブライブラリ

サブライブラリのアイデア

サブライブラリの回路図:

PHP 结合 MySQL 千万级数据处理

PHP 结合 MySQL 千万级数据处理

mysql 分散ブランチ ライブラリ (増加)

PHP 结合 MySQL 千万级数据处理
注: 1 回の操作後のデータベースデータベース接続を閉じる必要があります。そうしないと、mysql は常に同じデータベースに接続されていると認識します。

どの設定ファイルをロードしてどのデータベースに接続するかを決定するのに依然として係数が必要です

PHP 结合 MySQL 千万级数据处理

mysql 分散ブランチ ライブラリ (修正)

原理は新しいものと同じです

PHP 结合 MySQL 千万级数据处理

mysql 分散データベース (チェック、削除)

原理は同様です

PHP 结合 MySQL 千万级数据处理
削除

PHP 结合 MySQL 千万级数据处理
実行キュー

##Mysql 分散キャッシュ (memcache) アプリケーション

データをキャッシュに入れて、データベースのオーバーヘッドを保存します。まずキャッシュを確認します。存在する場合は直接取り出します。存在しない場合は、データベースを確認してキャッシュに保存します。

PHP 结合 MySQL 千万级数据处理

編集後、キャッシュを削除する必要があります。そうしないと読み取りが継続されます。これは、変更されたデータではなく、キャッシュされたデータです。

PHP 结合 MySQL 千万级数据处理

以上がPHP と MySQL を組み合わせて数千万のデータ処理を完了の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:learnku.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート