gpt4 book ai didi

sql-server - 比较 sql 中的 uniqueidentifier 和字符串哪个更快?

转载 作者:行者123 更新时间:2023-12-03 01:20:58 48 4
gpt4 key购买 nike

我有一个表,其中保存用户的 guid 及其实际名称(作为字符串)。我想根据用户获取一些信息。但我应该使用哪个字段?我的代码应该说:

select * 
from userinboxcount
where countDate >= startDate and countDate <= endDate and userid = '<guid here>'

or

select *
from userinboxcount
where countDate >= startDate and countDate <= endDate and username = "FirstName LastName"

最佳答案

最大的区别是一个字段是否有数据库可以使用的索引,而另一个字段则没有。如果数据库必须读取表中的所有数据来扫描该值,则磁盘访问会占用大量资源,以至于数据类型的差异无关紧要。

如果两个字段都有索引,那么较小的索引会更快一些,因为它加载得更快,并且更有可能保留在缓存中。

理想情况下,您应该有一个条件中所有字段的索引,其中包含您想要作为包含字段返回的字段。这样查询就可以仅从索引生成结果,而根本不必从实际表中读取。您当然不应该使用 select *,而是指定您实际需要返回的字段。

除此之外,比较 GUID 值会更快一些,因为它是简单的数字比较,不需要考虑词法规则。

关于sql-server - 比较 sql 中的 uniqueidentifier 和字符串哪个更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9007293/

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