ホームページ  >  記事  >  バックエンド開発  >  PHP と MySQL を組み合わせて数千万のデータ処理を行う方法

PHP と MySQL を組み合わせて数千万のデータ処理を行う方法

coldplay.xixi
coldplay.xixi転載
2020-07-07 16:26:533015ブラウズ

PHP と MySQL を組み合わせて数千万のデータ処理を行う方法

#mysql テーブル分割のアイデア

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

関連する学習の推奨事項:

PHP プログラミングの入門から熟練度まで

PHP 结合 MySQL 千万级数据处理

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

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

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

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

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

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

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

#この変更には問題があり、メインテーブルとサブテーブルのデータに不整合が生じます。メインテーブルとサブテーブルのデータを整合させるにはどうすればよいですか?

#Redis キューはメイン テーブルとサブテーブルのデータの一貫性を保ちますPHP 结合 MySQL 千万级数据处理

変更が完了すると、メイン テーブルのデータが変更され、 redis キュー

次に、Linux スケジュールされたタスク (contble) がループして、redis キュー内の SQL ステートメントを実行し、メイン テーブルの内容を同期的に更新します。

PHP 结合 MySQL 千万级数据处理

MySQL 分散サブテーブル (クエリ、削除)

クエリはサブテーブルのみをクエリする必要があり、テーブル全体をクエリする必要はありませんPHP 结合 MySQL 千万级数据处理

削除、最初に ID に基づいてオブジェクトを検索します。サブテーブルを削除してから削除し、SQL ステートメントをプッシュしてテーブルのデータ全体をメッセージ キューに削除します

その後、スケジュールされたタスクを実行してテーブルの合計データを削除します

PHP 结合 MySQL 千万级数据处理#タイミング タスク:


PHP 结合 MySQL 千万级数据处理# mysql 分散データベースの分割

データベースの分割に関するアイデアPHP 结合 MySQL 千万级数据处理

サブライブラリの図:

##

mysql 分散ブランチ データベース (増加)

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

またはモジュラスを取得して、どの構成ファイルをロードしてどのデータベースに接続するかを決定します

PHP 结合 MySQL 千万级数据处理

mysql分散ブランチライブラリ (変更)

原理は新しい

PHP 结合 MySQL 千万级数据处理

mysql 分散ブランチ ライブラリ (チェック、削除)

と似ています。

原理は同様です

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

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

mysql分散キャッシュ( memcache) application

データをキャッシュに入れて、データベースのオーバーヘッドを節約します。まずキャッシュ内で確認します。見つかった場合は、直接取り出します。見つからない場合は、データベースで確認してから、キャッシュ。

PHP 结合 MySQL 千万级数据处理

情報を編集した後はキャッシュを削除する必要があります。そうしないと、変更されたデータの代わりにキャッシュされたデータが常に読み取られます

PHP 结合 MySQL 千万级数据处理#

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

声明:
この記事はlearnku.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。