![]() |
1
4
在这种情况下,我只需要在guid上创建一个索引。对于现代数据库来说,每天数千次会话完全是一个微不足道的负载。 一些注释:
|
![]() |
2
2
假设您使用的是SQL Server 2005或更高版本,那么您的场景可能会从newSequentialID()中受益,newSequentialID()是一个为您提供有序guid的函数。 考虑一下这篇文章的引述 Performance Comparison - Identity() x NewId() x NewSequentialId “NewSequentialID系统函数是对SQL Server 2005的一个补充。它试图将SQL Server 2000中冲突的需求(即标识级插入性能和全局唯一值)结合在一起。” 将您的表声明为
然而,请记住,正如Andomar指出的那样,生成的guid的顺序性也使它们易于预测。有一些方法可以使这变得更困难,但如果不这样做,将比对顺序整数键应用相同的技术更好。 与其他作者一样,我严重怀疑使用直接newid()guid的开销是否足以引起应用程序的注意。与实现自定义缓存场景(如您提议的字典)相比,您最好专注于最小化到数据库的往返。 |
![]() |
3
1
如果我理解您的要求,您担心索引和通过散列的guid查找用户可能会减慢应用程序的速度?我和andomar在一起,这不太重要,除非插入的行太快,以至于更新索引会减慢速度。只有在像日志记录表这样的东西上才可能发生这种情况,然后只针对复杂的指标。 更重要的是,你 先分析一下 是吗?你不必猜测为什么你的程序很慢,你可以通过一个分析器找出哪些比特很慢。否则,您将浪费大量时间优化a)从未使用或b)已经足够快的代码位。 |
![]() |
Community wiki · SQL语法新手 1 年前 |
![]() |
KateMak · 是否将多行中的多列与唯一id组合? 1 年前 |
![]() |
Karuna · SQL中列内的筛选器[重复] 1 年前 |
![]() |
Irvan Affandy · 为另一个选择选择声明的键 1 年前 |
![]() |
Community wiki · 这个MySQL语句出了什么问题? 1 年前 |
![]() |
Community wiki · 优化从同一表中提取的多列的查询 1 年前 |