ホームページ  >  記事  >  バックエンド開発  >  MYSQL_PHP チュートリアルでの PHP 同時実行によるプレッシャーの解決策

MYSQL_PHP チュートリアルでの PHP 同時実行によるプレッシャーの解決策

WBOY
WBOYオリジナル
2016-07-21 15:13:05760ブラウズ

PHP ページのページビュー統計は 1 秒あたり 200 の同時実行であり、挿入により mysql に多大な負荷がかかります

lnmp 環境では、他のページのコンテンツがキャッシュされるため、mysql に大きな負荷がかかるのはこのページビュー統計関数です。何か解決策はありますか?

MySQL では 1 秒あたり 200 の同時実行は難しくないと誰もが言います。また、Redis と Memcached に切り替えると、永続性は言うに及ばず、ビジネス コードと運用保守のデプロイの量も少なくありません。

いくつかの提案をさせていただきます。運用とメンテナンスの導入とビジネス コードの変更をできるだけ小さくするようにしてください。

マスターとスレーブの分離を行うことができます。多くの統計計算を実行しながら、ライブラリに対して同時実行性の高い挿入を実行しないでください。分離後、クエリはスレーブ データベースで実行され (または Hive などの特殊な分散システムにインポートされても)、挿入パフォーマンスを向上させるためにメイン データベースでインデックスを削除できます。この方法では、ビジネス コードをほとんど変更する必要はありません (データベース構成ファイルを変更するだけです)。 MySQL の運用とメンテナンスの導入は、業務の閑散期にオンラインで行うこともできます。

少量のビジネス コード (PHP) の変更を許容できる場合は、次の 2 つの提案があります:
1. データベースとテーブルを分割する。各テーブルのデータの総量が少なくなり、特にMyISAM テーブル。挿入する前に、この IP がデータベースに存在するかどうか、以前にカウントされたことがあるかどうかの確認など、いくつかのクエリが必要になる場合があります。
2. HandlerSocket プラグインを使用して SQL パーサーをバイパスし、保存されたファイルを直接操作します。ビジネスで可能であれば一括挿入も可能です。 MySQL InnoDB は、HandlerSocket と同様の InnoDB NoSQL プラグインも起動しました。これは、memcached プロトコルを使用し、InnoDB バッファを共有します。これまで、MySQL と Memcached がデータの一貫性をどのように維持していたのかを心配する必要はなくなりました。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/326586.html技術記事 PHP ページのページ ビュー統計は 1 秒あたり 200 の同時実行で、挿入により mysql lnmp 環境に多大な負荷がかかります。他のページのコンテンツはキャッシュされており、負荷はそれほど高くありません。それがこのブラウザです...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。