gpt4 book ai didi

mysql - 非常简单的自连接,却被忽略了?

转载 作者:行者123 更新时间:2023-11-29 14:55:15 24 4
gpt4 key购买 nike

有一个菜鸟问题。假设我创建了下表:

临时1

向上,varchar(15)

dn,varchar(15)

我添加了几个索引:

create table temp1 (up varchar(15), dn varchar(15), index id1(up), index id2(dn))

用一些随机数据填充表格后,我执行以下解释选择

explain select * from temp1 as t1, temp1 as t2 where t1.up = t2.up

并得到

+----+-------------+-------+------+---------------+------+---------+------+------+-------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------+------+---------------+------+---------+------+------+-------------+
| 1 | SIMPLE | t1 | ALL | id1 | NULL | NULL | NULL | 4 | |
| 1 | SIMPLE | t2 | ALL | id1 | NULL | NULL | NULL | 3 | Using where |
+----+-------------+-------+------+---------------+------+---------+------+------+-------------+

为什么优化器不使用这些键?!我一定错过了一些非常简单的东西。 。 .

(我问这个问题是因为我实际使用的表(700K 行)的类似查询运行速度非常慢,我猜它与 indeces 有关)。

感谢您的帮助!

最佳答案

由于您选择了 temp t1 中的所有行(以及几乎所有来自 t2 的行) - mysql 决定使用 fullscan,因为它更适合这种情况。

关于mysql - 非常简单的自连接,却被忽略了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4779531/

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