SQL读/写效率

时间:2011-08-09 14:41:36

标签: sql linq-to-sql asp.net-mvc-2

SQL中的读写操作性能是否存在差异?在ASP.NET MVC应用程序中使用Linq to SQL,我经常在单个帖子中更新我的一个表中的许多值(在此过程中,虽然用户无法提交,但很多此类帖子会很快来自用户新数据,直到上一次更新完成)。我当前的实现是遍历输入(每行的当前值列表),并将它们写入字段(nullable int)。我想知道是否会有任何性能差异,而不是我读取当前的db值,只有在它已经改变时才写入。大多数这些操作将大约1/4到2/3的行更改为值,有些更改更少,很少更改超过2/3的行。

我不太了解这些操作的比较速度(或者是否存在任何差异)。这样做有什么好处?如果是这样,哪些表格大小最有利于/不受益,并且是否会有任何百分比的行改变,这将成为这一改进的门槛?

1 个答案:

答案 0 :(得分:2)

阅读总是更快。

写入实际上始终是读取,后跟写入

SQL需要知道要写入哪一行,这涉及在搜索或扫描操作中读取索引或表本身,然后写入相应的行。

写入还需要更新任何适用的索引。根据具体情况,即使数据没有变化,索引也可能会“更新”。

作为一般规则,仅修改需要更改的数据是个好主意。