gpt4 book ai didi

Mysql 5.6 不在子查询中使用索引

转载 作者:行者123 更新时间:2023-11-29 02:55:37 26 4
gpt4 key购买 nike

我有一张 parent 表和一张 child 表

我的 parent 表如下:

+----------------+-------------------------------+
| parent_id | parent_name |
+----------------+-------------------------------+
| 10792 | Katy |
| 7562 | Alex |
| 13330 | Drew |
| 9153 | Brian |
+----------------+-------------------------------+

我的 children 的 table 是:

+----------+-------------------------------+-----------+-----+
| 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;

我的问题是,当我执行此查询时( parent 有 13,000 条记录, child 有 21,000 条记录)children 中的 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 和 FORCE KEY。有什么想法吗?

最佳答案

所以当两个 ID 字段不是相同的字段类型 INT(11) VS 时,就会发生这种情况。变量(45)。在应用程序中,奇怪地创建了表的 ID 字段之一。更新字段类型解决了 SQL 优化器问题。

谢谢!

关于Mysql 5.6 不在子查询中使用索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30903023/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com