sql >> データベース >  >> RDS >> Mysql

過度のMySQLアクティビティ

    この記事では、過剰なMySQLアクティビティの影響と、それがアカウントの全体的なリソース使用量にどのように悪影響を与える可能性があるかについて説明します。 MySQLは、多くの一般的なWebアプリケーションのデータベースバックエンドであり、それらのアプリケーションがデータを保存し、後でサーバー側スクリプトによって取得して、その情報をページに取り込む場所です。

    アカウントからの過剰なMySQLアクティビティに関する通知をシステム管理部門から受け取った場合、おそらくこれは、彼らが見たアクティビティのレベルが、アカウントが現在存在するホスティングプラットフォームの機能を超えたことを意味します。

    過剰なMySQLアクティビティの一般的な原因

    長時間実行されるクエリ 通常のSQLクエリは、1秒以内、最大で数秒以内に完了する必要があります。これらのクエリ時間を一貫して超える長時間実行クエリがあると、サーバー上で他のクエリを処理する際に遅延が発生する可能性があります。
    1秒あたりのクエリ数が多い 通常、SQLクエリはトラフィックに正比例して小さな波で発生します。スクリプトでページの読み込みごとに大量のSQLクエリが必要な場合は、数が多くなる可能性があります。 1秒あたりのSQLクエリの数は、サーバーのクエリパフォーマンスに悪影響を及ぼし、長時間実行されるクエリにつながる可能性があります。
    大規模なクエリが最適化されていません 一部のSQLクエリは、本質的に非常に複雑になります。特に、データの操作を実行する前に複数のデータテーブルを結合するクエリはそうです。 SQLクエリが効率的であり、実際に表示する必要のあるデータのみを取得することで、これらの非効率的なクエリが長時間実行されるクエリや1秒あたりのクエリ数が多くなるのを防ぐことができます。
    永続的な接続 ほとんどのSQLクエリは、データベースへの接続を開き、データを取得してから、データベース接続を閉じるだけです。 MySQLは、データが取得された後も接続が維持される永続的な接続もサポートしています。これは、特に maxに遭遇する可能性のある共有ホスティングで問題になることがあります。 _user_connections MySQLで設定された制限。

    ほとんどの場合、MySQLアクティビティが過剰である場合、システム管理部門から、アクティビティの発生元と思われる一般的な説明について連絡があります。

    MySQLの使用を最適化する

    MySQLデータベースを最適化するための良い最初のステップは、phpMyAdminを使用してデータベースを最適化することです。

    通常のMySQLアクティビティが完全に正常な場合もありますが、ロボットがサイトをクロールし始めると、アプリケーションの非効率性が浮き彫りになる可能性があるため、検索エンジンやロボットによるWebサイトのクロールを停止する方法も知っておくとよいでしょう。

    最後に、アプリケーションで使用できるSQLキャッシュオプションも確認する必要があります。たとえば、フロントページでそのページのすべての情報を表示するために2つのSQLクエリが必要で、100人がそのページにアクセスした場合、200クエリになり、毎回同じデータを取得することはありません。

    SQLキャッシングを実装すると、これらの重複するデータベースクエリを削減するのに役立ちます。このタイプのキャッシングの例では、W3TotalCacheプラグインを使用したWordPressの最適化について読むことができます。


    1. デフォルト以外のNLS_NUMERIC_CHARACTERSを使用してOraclePL/ SQLでテキストを数値に効率的に変換するにはどうすればよいですか?

    2. MicrosoftAccessのレポートウィザードを使用してレポートを作成する方法

    3. Apache、MariaDB、PHPをサポートするUbuntuへのLaravelのインストール

    4. Power()関数がPostgreSQLでどのように機能するか