Is it possible to see why my queries are so slow just by seeing the execution plan
<p>I am trying learn how to optimize SQL statements and I was wondering if it's possible to estimate what might be making my queries slow just by seeing the execution plan.</p>

<pre><code>*************************** 1. row ***************************
           id: 1
  select_type: PRIMARY
        table: &lt;derived2&gt;
         type: ALL
possible_keys: NULL
          key: NULL
      key_len: NULL
          ref: NULL
         rows: 382856
        Extra: Using where; Using temporary; Using filesort
*************************** 2. row ***************************
           id: 1
  select_type: PRIMARY
        table: rf
         type: ref
possible_keys: rec_id
          key: rec_id
      key_len: 4
          ref: rs.id
         rows: 7
        Extra: Using index condition
*************************** 3. row ***************************
           id: 2
  select_type: DERIVED
        table: f
         type: range
possible_keys: facet_name_and_value,rec_id
          key: facet_name_and_value
      key_len: 309
          ref: NULL
         rows: 382856
        Extra: Using index condition; Using where; Using temporary; Using filesort
*************************** 4. row ***************************
           id: 2
  select_type: DERIVED
        table: r
         type: ref
possible_keys: record_id
          key: record_id
      key_len: 9
          ref: sqlse_test_crescentbconflate.f.rec_id
         rows: 1
        Extra: Using where; Using index
</code></pre>

<p>Just by looking at the execution plan I can see that I am using too many joins and the data is too big since SQL is using filesort, but I might be wrong. </p>