У меня есть таблица родителей и стол детейMysql 5.6 не использует индекс в подзапроса
Мои родители таблица выглядит следующим образом:
+----------------+-------------------------------+
| parent_id | parent_name |
+----------------+-------------------------------+
| 10792 | Katy |
| 7562 | Alex |
| 13330 | Drew |
| 9153 | Brian |
+----------------+-------------------------------+
моих детей таблица:
+----------+-------------------------------+-----------+-----+
| child_id | child_name | parent_id | age |
+----------+-------------------------------+-----------+-----+
| 1 | Matthew | 10792 | 4 |
| 2 | Donald | 9153 | 5 |
| 3 | Steven | 10792 | 9 |
| 4 | John | 7562 | 6 |
+----------+-------------------------------+-----------+-----+
При использовании суб-выбора, такие как:
SELECT parent_name, (SELECT SUM(age) FROM children WHERE parent_id = parents.parent_id) AS combined_age FROM parents;
Моя проблема заключается в том, что когда я выполняю этот запрос (у родителей 13 000 записей, у детей - 21 000 записей), индекс parent_id в детей не используется, как показано в плане объяснения. Я получаю:
+----+--------------------+--------------------------+--------+---------------+------+---------+-------+-------+-------------------------------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+--------------------+--------------------------+--------+---------------+------+---------+-------+-------+-------------------------------------------------+
| 1 | PRIMARY | parents | ALL | NULL | NULL | NULL | NULL | 13548 | NULL
| 2 | DEPENDENT SUBQUERY | children | ALL | PARENTS,AGE | NULL | NULL | NULL | 21654 | Range checked for each record (index map: 0x22) |
+----+--------------------+--------------------------+--------+---------------+------+---------+-------+-------+-------------------------------------------------+
Этот запрос принимает в течение 3 минут, чтобы бежать, и я не могу показаться, чтобы получить подзапрос использовать индекс для запроса, где дети принадлежат к родителю. Я пробовал USE INDEX и FORCE INDEX, а также USE KEY AND FORCE KEY. Есть идеи?