[+/-]
EXPLAINを使用して、クエリを最適化するSELECTクエリの速度WHERE 節最適化IS NULL最適化DISTINCT最適化LEFT JOINとRIGHT JOIN最適化ORDER BY最適化GROUP BY最適化LIMITの最適化INSERTステートメントの速度UPDATEステートメントの速度DELETEステートメントの速度
第 1 にすべてのクエリに影響を及ぼすことが 1
つあります。アクセス権システムのセットアップの複雑性が増すほど、オーバヘッドも増加します。
GRANTステートメントを発行する際に単純なアクセス権を使用することで、クライアントがステートメントを事項する際のMySQLにアクセス権確認オーバーヘッドを減らすことができます。例えば、テーブルレベルやカラムレベルの特権を許可したくない場合、サーバはtables_privとcolumns_privテーブルの内容を確認する必要はまったくありません。同じように、どのアカウントにもリソース制限を設けない場合、サーバは性能リソースカカウンティングを行う必要がありません。大量の処理が必要なときは、GRANT
を使用しないことで時間を節約できる場合もあります。
明示的な MySQL
関数に関わる問題がある場合は、常に
mysqlクライアントでBENCHMARK()関数の計時を行うことができます。
その構文はBENCHMARK(。返される値は常に0ですが、mysqlはステートメントの実行にどの程度の時間を要したかを表示するラインをプリントします。例
:
loop_count,表現)
mysql> SELECT BENCHMARK(1000000,1+1);
+------------------------+
| BENCHMARK(1000000,1+1) |
+------------------------+
| 0 |
+------------------------+
1 row in set (0.32 sec)
これは、PentiumII 400MHz 上で MySQL によって 1,000,000 の + 式を 0.32 秒間に実行できることを示しています。
MySQL
関数はすべて最適化されていますが、例外も若干あります。BENCHMARK()はクエリに関数上の問題があるかどうかを調べる際に最適のツールです。
