gpt4 book ai didi

mysql - 使用 LIKE 语句进行查询优化

转载 作者:行者123 更新时间:2023-11-29 00:22:28 25 4
gpt4 key购买 nike

像这样创建一个表:

CREATE TABLE test ( a INT(10), b char(10));

添加两个索引:

alter table test add key aa (a), add key bb (b);

插入一些行:

insert into test values (132,'logi');
insert into test values (322,'koko');
insert into test values (32,'kola');

等...

您可以使用少量行进行测试,但在我的应用程序中我将有一亿行,所以我要问的是有道理的:所以,假设我想执行两个查询:

1) explain select * from test where b like "frif%";
2) explain select * from test where a like "32%";

第一个使用索引 bb,因为 b 是一个字符,而第二个不使用索引 aa,因为 a 只是一个 INT(我把它当作一个字符!)。我怎样才能使第二个查询作为第一个查询执行并搜索像“some_number%”这样的数字,并使该查询成为范围类型的查询而不是 ALL(如解释所示)。

最佳答案

如果您将数字视为字符串,则以这种方式存储它。听起来这个数字是某种代码。尽管由数字组成,但它实际上只是某物的名称(例如帐号)。

如果数字是固定长度的,比如说5,那么你可以这样做:

where a >= 32000 and a < 33000;

你可以将这个想法扩展到不同的长度:

where a >= 32 and a < 33 or
a >= 320 and a < 330 or
a >= 3200 and a < 3300 or
a >= 30000 and a < 33000

关于mysql - 使用 LIKE 语句进行查询优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20613101/

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