Answers:
要查看性能差异,请尝试以下操作:
SELECT count(*)
FROM master..sysobjects as A
JOIN tempdb..sysobjects as B
on A.name = B.name
SELECT count(*)
FROM master..sysobjects as A
JOIN tempdb..sysobjects as B
on A.name LIKE B.name
将字符串与“ =”进行比较要快得多。
Postgres还提供了其他一些技巧来进行字符串匹配(如果碰巧是您的数据库):
ILIKE,是不区分大小写的LIKE匹配:
select * from people where name ilike 'JOHN'
火柴:
如果您想发疯,可以使用正则表达式:
select * from people where name ~ 'John.*'
火柴:
就像抬头一样,'='运算符将在Transact-SQL中用空格填充字符串。因此'abc' = 'abc '
将返回true;'abc' LIKE 'abc '
将返回false。在大多数情况下,“ =”将是正确的,但在我最近的情况下则不是。
因此,虽然'='更快,但LIKE可能会更明确地说明您的意图。
LIKE
用于模式匹配并=
用于相等性测试(由COLLATION
使用中定义)。
=
可以使用索引,而LIKE
查询通常需要测试结果集中的每条记录以将其过滤掉(除非您使用的是全文搜索),因此=
具有更好的性能。