gpt4 book ai didi

mysql 连接两个索引需要很长时间!

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

大家好
我在 dreal 中有一个自定义查询,该查询是:

select count(distinct B.src) 
from node A, url_alias B
where concat('node/',A.nid)= B.src;

现在,节点中的 nid 是主键,我已将 src 作为 url_alias 表中的索引。等了一分多钟后我得到了这个:

+-----------------------+  
| count(distinct B.src) |
+-----------------------+
| 325715 |
+-----------------------+
1 row in set (1 min 24.37 sec)

通过检查“解释”我得到了这个:

******************* 1. row ***************************  
id: 1
select_type: SIMPLE
table: A
type: index
possible_keys: NULL
key: PRIMARY
key_len: 4
ref: NULL
rows: 325716
Extra: Using index
*************************** 2. row ***************************
id: 1
select_type: SIMPLE
table: B
type: ALL
possible_keys: src_language_pid,src
key: NULL
key_len: NULL
ref: NULL
rows: 325928
Extra: Range checked for each record (index map: 0xC)
2 rows in set (0.00 sec)

现在我的问题是:为什么这个查询没有使用src的索引,以及如何优化它?

感谢您的帮助

最佳答案

性能问题与使用concat有关如果 nid 是一个整数,这会导致很多工作。

我认为您必须在 url_alias 中添加索引 nid 列。

不幸的是,您的表格将不再标准化。

关于mysql 连接两个索引需要很长时间!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4584489/

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