[+/-]
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()
はクエリに関数上の問題があるかどうかを調べる際に最適のツールです。