#PHP MySQL 列では、数千万のデータ処理を実現する方法について説明します
推奨 (無料):mysql サブテーブルのアイデア
1 億の注文テーブルを 5 つのテーブルに分割すると、各テーブルには 2,000 万件のデータのみが含まれ、元のテーブルと負担が共有されます。サブテーブルは、特定の条件に従って分割する必要があります。ここでは、次に従って分割できます。 テーブルをリージョンごとに分割するには、必要なデータを見つけるためにどのテーブルに移動するかを制御するミドルウェアが必要です。 ミドルウェア: メインテーブルの自動インクリメント ID をミドルウェアとして使用します (どのフィールドがミドルウェアに適していますか? 一意である必要があります)
配布方法は?メイン テーブルに挿入した後、ID が返され、この ID とテーブルの数に基づいて剰余が取得され、残りがどちらかのテーブルにデータが挿入されます。
注: サブテーブルの ID はメイン テーブルの ID と一致している必要があります。
将来的には、挿入操作のみがメイン テーブルを使用します。変更、削除、読み取りには使用する必要はありません。
redis メッセージ キュー1. メッセージ キューとは何ですか?
メッセージ伝播プロセス中にメッセージを保存するコンテナ2、メッセージ キューが生成される歴史的な理由
メッセージ キューの特徴: まず、 first out
実行された SQL ステートメントは、最初にメッセージ キューに保存され、その後、スムーズかつ非同期でデータベースに順次挿入されます。 アプリケーション: Sina、最初にインスタント コメントをメッセージ キューに入れてから、SQL を挿入します。スケジュールされたタスクを通じてメッセージ キュー内のステートメントを順次実行します。データベース
ModifyOperationサブテーブルに移動して変更します
このように修正します 問題があります。メインテーブルとサブテーブルのデータが不整合になります。メインテーブルとサブテーブルのデータを整合させるにはどうすればよいですか?
#Redis キューはメイン テーブルとサブテーブルのデータの一貫性を保ちます変更が完了すると、メイン テーブルのデータは変更され、redis キューに保存されます
次に、Linux スケジュールされたタスク (contble) がループして Redis キュー内の SQL ステートメントを実行し、メインテーブルの内容を同期的に更新します。
mysql 分散テーブル (クエリ、削除)クエリはサブテーブルをクエリするだけで済みます。メインテーブルではなくテーブル
削除するには、まず ID に基づいて削除するサブテーブルを見つけて削除し、SQL ステートメントをプッシュして合計を削除します。テーブル データをメッセージ キューに追加します。次に、スケジュールされたタスクを実行してテーブル データ全体を削除します
スケジュールされたタスク:
##mysql 分散サブライブラリサブライブラリのアイデア
mysql 分散ブランチ ライブラリ (増加)
注: 1 回の操作後のデータベースデータベース接続を閉じる必要があります。そうしないと、mysql は常に同じデータベースに接続されていると認識します。
どの設定ファイルをロードしてどのデータベースに接続するかを決定するのに依然として係数が必要です
mysql 分散ブランチ ライブラリ (修正)
原理は新しいものと同じです
mysql 分散データベース (チェック、削除)
原理は同様です
削除
実行キュー
##Mysql 分散キャッシュ (memcache) アプリケーション
データをキャッシュに入れて、データベースのオーバーヘッドを保存します。まずキャッシュを確認します。存在する場合は直接取り出します。存在しない場合は、データベースを確認してキャッシュに保存します。 編集後、キャッシュを削除する必要があります。そうしないと読み取りが継続されます。これは、変更されたデータではなく、キャッシュされたデータです。以上がPHP と MySQL を組み合わせて数千万のデータ処理を完了の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。