2017-03-01 9 views
-2

私は最近、サブクエリが最初のテーブルからの日付と一致する第二のテーブルから列値を返しますのMySQLを選択クエリの最適化

SELECT t1.id, t1.name, t1.date AS date_filter, 
     (SELECT t2.column_x 
     FROM table_2 t2 
     WHERE t2.date = date_filter LIMIT 1 
     ) AS column_x 
FROM table_1 t1 
WHERE t1.category_id = 10 
ORDER BY t1.date 
LIMIT 10; 

、私たちのオフィスの議論の一つに、クエリに出くわしました。 このクエリは最適化された速度で実行されていません。パフォーマンスを即興にする方法は何ですか?

乾杯

答えて

0

それは両方のテーブルのSHOW CREATE TABLEを持つように役立つだろう、プラス必要EXPLAIN SELECT ...

インデックス:

t1: INDEX(category_id, date) 
t2: INDEX(date) 

サブクエリがORDER BYせずに意味がありません - これは "1"あなたは欲しいですか?