gpt4 book ai didi

mysql - SELECT COUNT 不使用索引

转载 作者:行者123 更新时间:2023-11-29 23:20:18 24 4
gpt4 key购买 nike

我在 select count(*) 方面遇到问题,因为速度太慢,而且我不知道为什么:

表格:tabla_maestra(800万个寄存器)

索引:“codigo_postal”列上的“codigo_postal”,它是一个 char(5)

查询:

SELECT COUNT(*) AS total
FROM tabla_maestra tm
WHERE (tm.nombre like '%name%' OR tm.empresa_apellido1 like '%enterprise_name%') AND
(tm.codigo_postal like '08%');

此查询花费的时间太长(大约 4 秒),因为它没有使用任何索引。也就是说,这个查询正在做一次全扫描(800万个寄存器)。谁能解释一下为什么?

我已将此查询重写为:

SELECT COUNT(*) AS total
FROM tabla_maestra tm FORCE INDEX (codigo_postal)
WHERE (tm.nombre like '%javier%' OR tm.empresa_apellido1 like '%javier%') AND
(tm.codigo_postal like '08%');

现在,此查询使用“codigo_postal”索引,但它更慢:8 秒而不是 4 秒!!!

我什么都不懂,请问有人可以帮助我吗?
我将非常感激。谢谢,
丹尼。

最佳答案

两个查询的解释输出是:

enter image description here

关于mysql - SELECT COUNT 不使用索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27377549/

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