私はこのユースケースを持っています:同じテーブルに対して同じ「ロジック」クエリを一定回数、複数回実行する必要があります(同じセマンティックで、「WHERE」ステートメントが比較される値のみが異なります)。
クエリ レイアウト:
SELECT [(SUM(col_name),col_name,...)]
FROM table_name
WHERE expr AND expr...
このタスクのパフォーマンスを向上させるふりをします。
この問題についてここで見つけた記事を読んだり、追加の調査を行ったりすると、次の関連する事実を指摘できます。
- 内部一時テーブルは使用されません (クエリで EXPLAIN を使用)
- クエリ キャッシュは使用されません (同一のクエリではありません)。
問題のテーブルをミラーリングするメモリ (RAM、ENGINE=MEMORY) 内に一時テーブルを作成し、このメモリ内テーブルに対してすべてのクエリを実行すると、パフォーマンスを向上させることはできますか?:
CREATE TABLE tmp_table_name ENGINE=MEMORY SELECT * FROM table_name;
tmp_table_name に対してクエリを実行します
DROP TABLE tmp_table_name;
MySQL ドキュメントを参照してください: MEMORY (HEAP) ストレージ エンジン
ありがとう。