首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL:嵌套的replace()方法很慢吗?

问SQL:嵌套的replace()方法很慢吗?
EN

Stack Overflow用户
提问于 2013-11-08 22:08:53
回答 2查看 423关注 0票数 0

我想知道SQL查询中嵌套的REPLACE()方法的性能:

代码语言:javascript
复制
SELECT * 
FROM CUSTOMERS 
WHERE Replace(Replace(Replace(Replace(username, '.MR', ''), ' MR', ''), '.', ''), ' ', '') LIKE '%" & nameOnForm & "%'

我基本上是在尝试从用户名中剥离任何头衔(先生、夫人、博士),但我有大约40个可能的头衔需要剥离的列表。据我所知,使用嵌套的REPLACE()方法是实现此目的的唯一方法。

我的问题是,这对我的查询性能有何影响?我嵌套越多,它是不是变得越笨重、越慢?如果是这样的话,速度上的差异是可以忽略不计的还是显着的?

我可以自己运行一个基准测试来查看这一点,但我也想知道是否有更好的方法来做我想要做的事情?

EN

回答 2

Stack Overflow用户

发布于 2013-11-08 22:15:01

一般来说,REPLACE比TRANSLATE更快。但在使用嵌套REPLACE的情况下,性能肯定会受到影响。重写它们并进行比较会更安全。另外,我建议使用基于索引的函数。

票数 1
EN

Stack Overflow用户

发布于 2013-11-08 22:27:37

不仅仅是嵌套的replace函数很慢。当表中有很多记录时,这种构造总是很慢。

代码语言:javascript
复制
where function(field) = something

对于你的特定问题,如果你想要速度,你必须咬紧牙关,这样做:

代码语言:javascript
复制
where username like '%Mr.%'
or username like '%Mrs.%'
etc
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19861000

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档