データベース管理者は、DBMS のパフォーマンスを向上させるための調整と実験に人生のかなりの部分を費やします。アプリケーションの遅延やパフォーマンスの問題を診断する場合、パフォーマンスの低下したデータベース (およびデータベース クエリ) が最も一般的な原因となることがよくあります。
以下の内容は MySQL のパフォーマンスを完全に決定するものではないことがわかります。前の章の重要なポイントを確認し、パフォーマンスの最適化についての議論と分析の出発点を提供したいと考えています。
具体的な MySQL パフォーマンスの最適化に関する 17 のポイントを次に示します。
1. まず、MySQL には (すべての DBMS と同様に) 特定のハードウェア推奨事項があります。 MySQL を学習および研究する場合は、古いコンピュータをサーバーとして使用しても問題ありません。ただし、実稼働環境で使用されるサーバーの場合は、これらのハードウェア推奨事項に従う必要があります。
2. 一般的に、重要な本番 DBMS は独自の専用サーバーで実行する必要があります。
3.MySQL には一連のデフォルト設定が事前に構成されており、通常はこれらの設定から始めるのが適切です。ただし、しばらくすると、メモリ割り当てやバッファ サイズなどの調整が必要になる場合があります。 (現在の設定を表示するには、 SHOW VARIABLES; および SHOW STATUS; を使用します。)
4.MySQL はマルチユーザーおよびマルチスレッドの DBMS であり、言い換えれば、複数のタスクを同時に実行することがよくあります。これらのタスクの 1 つが遅い場合、すべてのリクエストが遅くなります。パフォーマンスが著しく低下している場合は、SHOW PROCESSLIST を使用して、すべてのアクティブなプロセスを (スレッド ID および実行時間とともに) 表示します。 KILL コマンドを使用して特定のプロセスを終了することもできます (このコマンドを使用するには、管理者としてログインする必要があります)。
5. 同じ SELECT ステートメントを記述する方法は常に複数あります。結合、ユニオン、サブクエリなどを試して、最適なアプローチを見つける必要があります。
6. EXPLAIN ステートメントを使用して、MySQL に SELECT ステートメントの実行方法を説明させます。
7. 一般に、ストアド プロシージャは、各 MySQL ステートメントを 1 つずつ実行するよりも高速に実行されます。
8. 常に正しいデータ型を使用する必要があります。
9. 必要以上のデータを取得しないでください。つまり、SELECT * は使用しないでください (すべての列が本当に必要な場合を除く)。
10. 一部の操作 ( INSERT を含む) はオプションの DELAYED キーワードをサポートしており、これを使用すると、呼び出し側プログラムにすぐに制御が戻り、実際にできるだけ早く操作が実行されます。
11. データをインポートするときは、自動送信をオフにする必要があります。インデックス (FULLTEXT インデックスを含む) を削除し、インポートの完了後に再構築することもできます。
12. データ検索のパフォーマンスを向上させるには、データベース テーブルにインデックスを付ける必要があります。何をインデックスするかを決定するのは簡単な作業ではなく、重複する WHERE 句と ORDER BY 句を見つけるために使用される SELECT ステートメントを分析する必要があります。単純な WHERE 句が結果を返すのに時間がかかりすぎる場合は、その句で使用されている列 (複数の列) がインデックスを作成する必要があるオブジェクトであると結論付けることができます。
13. SELECT ステートメントに一連の複雑な OR 条件がありますか?複数の SELECT ステートメントとそれらを接続する UNION ステートメントを使用すると、パフォーマンスが大幅に向上します。
14. インデックスはデータ取得のパフォーマンスを向上させますが、データの挿入、削除、更新のパフォーマンスに悪影響を及ぼします。データを収集するテーブルがあり、頻繁に検索されない場合は、必要になるまでインデックスを作成しないでください。 (インデックスは必要に応じて追加、削除できます。)
15.LIKEが遅いです。一般に、LIKE ではなく FULLTEXT を使用することをお勧めします。
16. データベースは常に変化するエンティティです。十分に最適化されたテーブルのセットは、しばらくすると認識できなくなる場合があります。テーブルの使用法や内容が変化すると、理想的な最適化や構成も変化します。
17. 最も重要なルールは、すべてのルールは特定の条件下では破られるということです。
【関連おすすめ】
2. Mysqlの起動の問題とログファイルの表示の詳細な説明3. MySQLデータベースのバックアップとメンテナンスの詳細な説明
4. MySQL アクセス権限設定の詳しい説明
5. MySQLはユーザーアカウントの作成と削除を行います
以上がMySQL パフォーマンスの最適化で 17 ポイントの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。