запрос очень медленный после перехода на MySQL 5.7

У меня есть база данных MySQL с таблицами InnoDB, суммирующими более 10 десять ГБ данных, которые я хочу перенести из MySQL 5.5 в MySQL 5.7. И у меня есть запрос, который выглядит примерно так:

SELECT dates.date, count(mySub2.myColumn1), sum(mySub2.myColumn2)
FROM (
    SELECT date
    FROM dates -- just a table containing all possible dates next 5 years
    WHERE date BETWEEN '2016-06-01' AND '2016-09-03'
) AS dates
LEFT JOIN (
    SELECT o.id, time_start, time_end
    FROM order AS o
    INNER JOIN order_items AS oi on oi.order_id = o.id
    WHERE time_start BETWEEN '2016-06-01' AND '2016-09-03'
) AS mySub1 ON dates.date >= mySub1.time_start AND dates.date < mySub1.time_end
LEFT JOIN (
    SELECT o.id, time_start, time_end
    FROM order AS o
    INNER JOIN order_items AS oi on oi.order_id = o.id
    WHERE o.shop_id = 50 AND time_start BETWEEN '2016-06-01' AND '2016-09-03'
) AS mySub2 ON dates.date >= mySub2.time_start AND dates.date < mySub2.time_end
GROUP BY dates.date;

Моя проблема в том, что этот запрос выполняется быстро в MySQL 5.5, но чрезвычайно медленно в MySQL 5.7.

В MySQL 5.5 сначала требуется более 1 секунды и <0,001 секунды при каждом повторяющемся выполнении без перезапуска MySQL.
В MySQL 5.7 сначала требуется более 11,5 секунд и 1,4 секунды при каждом повторяющемся выполнении без перезапуска MySQL.
И чем больше левых соединений я добавляю к запросу, тем медленнее становится запрос в MySQL 5.7.

Оба экземпляра теперь работают на одной машине, на одном жестком диске и с одинаковыми настройками my.ini. Так что это не аппаратное обеспечение.
Планы выполнения действительно отличаются, хотя, и я не знаю, что из этого сделать.

Это EXPLAIN EXTENDED на MySQL 5.5:

| id | select_type | table      | type  | possible_keys | key         | key_len | ref       | rows  | filtered | extra                           |
|----|-------------|------------|-------|---------------|-------------|---------|-----------|-------|----------|---------------------------------|
| 1  | PRIMARY     | dates      | ALL   |               |             |         |           | 95    | 100.00   | Using temporary; Using filesort |
| 1  | PRIMARY     | <derived2> | ALL   |               |             |         |           | 281   | 100.00   | ''                              |
| 1  | PRIMARY     | <derived3> | ALL   |               |             |         |           | 100   | 100.00   | ''                              |
| 3  | DERIVED     | o          | ref   | xxxxxx        | shop_id_fk  | 4       | ''        | 1736  | 100.00   | ''                              |
| 3  | DERIVED     | oc         | ref   | xxxxx         | order_id_fk | 4       | myDb.o.id | 1     | 100.00   | Using index                     |
| 2  | DERIVED     | o          | range | xxxx          | date_start  | 3       |           | 17938 | 100.00   | Using where                     |
| 2  | DERIVED     | oc         | ref   | xxx           | order_id_fk | 4       | myDb.o.id | 1     | 100.00   | Using where                     |

Это EXPLAIN EXTENDED на MySQL 5.7:

| id | select_type | table | type   | possible_keys | key         | key_len | ref              | rows | filtered | extra          |
|----|-------------|-------|--------|---------------|-------------|---------|------------------|------|----------|----------------|
| 1  | SIMPLE      | dates | ALL    |               |             |         |                  | 95   | 100.00   | Using filesort |
| 1  | SIMPLE      | oi    | ref    | xxxxxx        | order_id_fk | 4       | const            | 228  | 100.00   |                |
| 1  | SIMPLE      | o     | eq_ref | xxxxx         | PRIMARY     | 4       | myDb.oi.order_id | 1    | 100.00   | Using where    |
| 1  | SIMPLE      | o     | ref    | xxxx          | shop_id_fk  | 4       | const            | 65   | 100.00   | Using where    |
| 1  | SIMPLE      | oi    | ref    | xxx           | order_id_fk | 4       | myDb.o.id        | 1    | 100.00   | Using where    |

Я хочу понять, почему MySQL обрабатывает один и тот же запрос так сильно по-разному, и как я могу настроить MySQL 5.7 для ускорения?
Я не ищу помощи в переписывании запроса, чтобы он был быстрее, потому что это то, что я уже делаю самостоятельно.

Ответы на вопрос(2)

Ваш ответ на вопрос