Spr*_*ner 1 sql sql-server sql-server-2008
在我的应用程序中,我需要插入600行,每行有10个参数,这意味着我每5秒插入6000个数据.所以我删除前一个值并每5秒插入600行.另一种方法是我可以使用Clause来更新以前的数据.所以我想知道哪个性能问题最少.如果我有几百万行,如果我想为ID 50000选择数据.然后我会这样写
select * from mytable where ID=50000.
Run Code Online (Sandbox Code Playgroud)
一段时间后如果我需要id为90000的数据,那么sql server是否会从每个select语句的起始ID(ID = 1)中搜索,否则它将直接移动到ID = 90000我的查询将是sql server从id = 1开始查找直到它匹配where子句或它如何搜索?
编辑 ID是Primay键和自动增量
我完全同意Aakash的回答,UPDATE很可能是这里更快的方法.
但是,我想澄清关于关系数据库如何工作的潜在误解(或缺乏理解):
如果我需要id为90000的数据,那么sql server将从每个select语句的起始ID(ID = 1)进行搜索,否则它将直接移至ID = 90000
假设ID是表中的主键(或者定义了唯一索引),那么SQL Server将直接查找ID = 90000的行(实际上几乎每个关系数据库都会这样做).
查找行与id=1使用ID=90000或查找行所花费的时间相同ID=90000000
我建议您花一些时间阅读SQL Server手册,以了解关系数据库的工作原理.以下主题可能对您有意义:
此外,您可能想看看"使用索引卢克":http://use-the-index-luke.com/
关于索引如何工作以及数据库如何使用它们,有很多非常好的信息.
| 归档时间: |
|
| 查看次数: |
15470 次 |
| 最近记录: |