ホームページ >バックエンド開発 >PHPチュートリアル >MYSQL を動作させる PHP に関連する問題

MYSQL を動作させる PHP に関連する問題

WBOY
WBOYオリジナル
2016-06-13 13:38:10810ブラウズ

PHP が MYSQL を操作する問題について
アクセス数が多い Web サイトで、PHP アプリケーションがクエリ、更新、削除、その他の関連操作など、MYSQL をより効果的に操作するにはどうすればよいでしょうか。

-----解決策---------
読み取りと書き込みの分離。キャッシュの追加
------解決策----------------------
データが次のレベルに達した場合、データベースを適切に計画することが重要です。一定の規模のデータベーステーブル...
------解決策---------
PHP データベース操作は一部の操作にすぎません...
データベース処理でさらに最適化を行う必要があります

一部のクエリ結果を memcached に配置します
一部の結果を一時テーブルに配置します
一部の結果を一時メモリ テーブルに配置します

一部の重複を結合しますクエリを 1 つのクエリにまとめました

....

多すぎます。
------解決策-----
異なるサーバーに異なるテーブルを配置する これは非常に簡単です。 , ただし、共同でチェックしないことが要件となります。

書き込み量は少ないが、読み取り圧力が大きく、ディスク速度がネットワーク トラフィックに追いつかない場合は、マスターからスレーブへ個別に読み取りと書き込みを行います。

テーブルのサーバー/マスター/スレーブ クラスターがサポートできない場合は、特定のフィールドに従ってテーブルをハッシュするか、別のマシンにセグメント化します。

これらのマッピング関係を管理するには、mysql プロキシなどを作成します。一般的な圧力では、1 つを破壊することはできても、さらにいくつかのプロキシを開くことは最悪です。負荷分散のため、すべてのデータベース操作はプロキシで解析され、このプロキシの下に、必要に応じてマスター/スレーブ クラスタ用の別のプロキシが存在する可能性があります。 。

プロキシが必要ない場合は、ポリシーをプログラムに直接記述することができます。これは単なる意思決定関数であり、SQL コマンドを渡して、要求された mysql サーバーの ip:port を返す必要があります。この関数を個別に php に配置し、そのインクルードを他のことに使用すると、全体に影響を与えることができ、非常に穏やかになります。
------解決策---------

話し合う

異なるテーブルを異なるサーバーに配置するのは非常に簡単ですが、それらのテーブルに結合クエリがないことが要件です。

書き込み量は少ないが、読み取り圧力が大きく、ディスク速度がネットワーク トラフィックに追いつかない場合は、マスターからスレーブへ個別に読み取りと書き込みを行います。

テーブルのサーバー/マスター/スレーブ クラスターがサポートできない場合は、特定のフィールドに従ってテーブルをハッシュするか、別のマシンにセグメント化します。

これらのマッピング関係を管理するには、mysql プロキシなどを作成します。一般的な圧力では、1 つを破壊することはできても、さらにいくつかのプロキシを開くことは最悪です。 . またネガティブになって…

------解決策--------
クエリは sphinx+php を使用できます (sphinx には次の機能があります:高速インデックス作成、高速検索)

Baidu または google

具体的な参照先: http://wenku.baidu.com/view/ff2efb2d647d27284b7351ad.html


------解決策---------
クラスターを作成してください!
------解決策----------------------
mysql をマスター/スレーブ読み取り用のクラスターとして設定する 書き込み分離。
非常に大量のデータを含むプロジェクトを使用する予定があり、トランザクション処理または外部キーのサポートが必要な場合は、
実際には InnoDB メソッドを直接使用する必要があります。
ただし、InnoDB テーブルにはより多くのメモリとストレージが必要であることに注意してください。
------解決策------------------
初心者は今のところこの問題を無視してください
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。