MySQL インデックスを作成して PHP アプリケーションのパフォーマンスを大幅に最適化する
この記事では、mysql に関する関連知識を提供します。主に、PHP アプリケーションのパフォーマンスを大幅に最適化するためのインデックス作成に関する関連コンテンツを紹介します。一緒に見ていきましょう。皆様のお役に立てれば幸いです。
原因
私の友人は 2 か月前にプロジェクトを行う予定で、オンラインでの迅速なプロモーションを目的として、直接企業のソースコードを購入し、販売者にオンラインで展開させました。ソースコードを見た後、私は友人に「騙されました。このソースコードの品質は少し悪く、ユーザー数が増えると重大なパフォーマンスの問題が発生する可能性があります。」と直接言いました。
私にはそのような評価を行うための根拠があります:
準リアルタイム アプリケーションとして、コア コードは PHP で書かれており、多数のコードの同時実行性が実現されています。シナリオはデータベース テーブル レコードによって制御され、繰り返しのリクエスト;
PHP 開発は問題ありませんが、他のエンジニアは CLI モードがあることを知らなかったようですが、スケジュールされたモードを使用していますプログラムのノンストップ実行を実現するためのタスク (crontab) は膨大であるため、毎分数十のカールスケジュールされたタスクが実行されます;
class1.php と class1- が多数あります。 1.phpファイルがコード内に存在します 一見しただけでは存在が分かりにくいです 目的;
データベースを読み込むためのループコードや命名規則が多いです混乱しています。
もちろん、儲かるコードは良いコード(相手はそのコードで儲かっている)なので、あまり気にしません。当初は、4 コア 8G 構成では 10,000 人の顧客にサービスを提供するのは難しいが、5,000 人あれば十分であると考えられていました。
ターンアラウンド
今週、突然、Alibaba Cloud から CPU 使用率が高すぎるというアラーム テキスト メッセージや電子メールを頻繁に受け取りました。マーケティングプロモーションはうまくいき、ユーザー数は大幅に増加したと思いますか?友達に聞いたらユーザーは300人もいなかった!
#この時点で、このコードの実際のパフォーマンスは思ったよりも悪く、パフォーマンスに重大な問題があることに気付きました。このリソース消費率によると、ハードウェアのアップグレードは底なし沼であり、パフォーマンスの最適化が正しい方法であることがわかります。
パフォーマンスの最適化
コードを入手してから 2 か月が経ちましたが、暇なときに時々眺めており、すでにその構造と主な機能については大体理解しています。深刻なパフォーマンスの問題が発生したので、パフォーマンスの最適化を試してみましょう。
数十のスケジュールされたタスクが継続的に実行され、システム動作を継続的に駆動するという事実を考慮すると、スケジュールされたタスクの関連機能が最初に理解される必要があります。私自身の理解に基づいて、まず、不要になった 20 以上の予定されていたタスクを一時停止しました。無駄なスケジュールされたタスクを一時停止すると、システム全体の CPU 使用率が 60% 以上に低下し、迷惑なリマインダーのテキスト メッセージや電子メールがついに止まりました。 1 日待っても、友人からは機能が影響を受けたという報告はありませんでした。これは、このアイデアと出発点が正しかったことを示しています。
しかし、200 人を超えるユーザーがこのようにリソースを消費しているのですから、何か問題があるはずです。今日暇なときにサーバーに再度ログインし、top コマンドを実行したところ、mysql プロセスが CPU リソースの 200% 以上を占有していることがわかりました。ソース コードを読んだ後、MySQL の使用率が高いのには理由があり、それが可能であることはわかりましたが、なぜこれほど多くのリソースを消費するのかを知りたいと思っています。
MySQL サーバーにログインし、スロー ログが有効かどうかを確認します: '%slow%' のような変数を表示し、スロー クエリ ログが有効であることを確認します:
続行 ログを確認すると、特定の SQL ステートメントが常にログに表示されていることがわかります。
まとめ
開発プロジェクトでは、エンジニアは「使える」コードだけでなく「使いやすい」コードも書く必要があります。この例では、2 つのインデックスを作成することにより、システムのパフォーマンスが大幅に向上し、コードが「使いやすい」から「使いやすい」に変わります。
この記事で説明するパフォーマンスの最適化は運用と保守に重点を置いており、コード内のパフォーマンスの最適化にはまだ触れていません。ただし、一般原則は正しいです。つまり、より多くのキャッシュを使用し、低速 IO デバイスからの同期読み取りをできるだけ減らすということです。
推奨学習: 「mysql ビデオ チュートリアル 」、「PHP ビデオ チュートリアル 」
以上がMySQL インデックスを作成して PHP アプリケーションのパフォーマンスを大幅に最適化するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

CakePHP はオープンソースの MVC フレームワークです。これにより、アプリケーションの開発、展開、保守がはるかに簡単になります。 CakePHP には、最も一般的なタスクの過負荷を軽減するためのライブラリが多数あります。

このチュートリアルでは、PHPを使用してXMLドキュメントを効率的に処理する方法を示しています。 XML(拡張可能なマークアップ言語)は、人間の読みやすさとマシン解析の両方に合わせて設計された多用途のテキストベースのマークアップ言語です。一般的にデータストレージに使用されます
