2つのテーブルがあります。1つはIDを評価に一致させ、もう1つはIDを約15列の実際のデータに一致させます。データテーブルでは、id列にインデックスがあり、評価テーブルでは、idが主キーであり、評価にインデックスが付けられています。データを選択したいのですが、評価が正の行からのみです。そうするために私はクエリを使用しています
SELECT * FROM data_table
INNER JOIN rating_table ON data_table.id = rating_table.id
WHERE rating > 0
しかし、何らかの理由で、これには約0.35秒かかります。これは、私には非常に長いようです。データテーブルには約90,000行、評価テーブルには約5,000行あり、これには10分の1秒もかからない必要があります...このタスクを高速化するために、インデックスを変更したり、クエリを変更したりするにはどうすればよいですか。
編集: プロファイリングした後、それは私に次のことを与えました。キャッシュされたので、クエリが以前よりもはるかに速く戻ってきたと思いますが、それでもこれは誰かに役立つ可能性があることに注意してください
0.000012 starting
0.000053 checking query cache for query
0.000014 Opening tables
0.000006 System lock
0.000027 Table lock
0.000044 init
0.000018 optimizing
0.000060 statistics
0.000016 preparing
0.000004 executing
0.004916 Sending data
0.000007 end
0.000003 query end
0.002271 freeing items
0.000009 storing result in query cache
0.000002 logging slow query
0.000004 cleaning up
だから私はデータの送信に多くの時間が費やされたのを見る...どうすればこの部分をスピードアップできますか?