gpt4 book ai didi

mysql - SQL LIKE 是否迭代表的每一行

转载 作者:行者123 更新时间:2023-11-29 07:43:01 26 4
gpt4 key购买 nike

我只是好奇,如果我的 SQL 数据库的中有数十亿行,其中一个字段用户名 ,我必须搜索从字母 G 开始的名称,并且数据库中的数据未排序,所以 LIKE 语句会迭代每一行吗?如果我对表中的数据进行排序,是否可以使用二分搜索之类的东西来减少搜索时间(如果是)那么该怎么做?或者排序后我仍然必须坚持 LIKE

最佳答案

如果你这样做:

where username like 'G%'

并且没有索引,那么MySQL将扫描每一行。

SQL 中确实没有“排序表”的概念。有一个更强大的索引概念。如果您有一个索引,其中 username 是第一个(或唯一的键),那么 MySQL 通常会使用该索引进行此类查询。它可以做到这一点,因为 like 模式以常量开头。

以下内容不会使用索引:

where username like '%G'
where username like '%G%'
where left(username, 1) = 'G'

关于mysql - SQL LIKE 是否迭代表的每一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28530682/

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