我正在使用一个 sql server,我有一个特定的表,最多可以包含 ~100 万到 1000 万条记录。
在我检索的每条记录中,我都做了一些检查(我运行了几行简单的代码),然后我想在 DateTime.Now 中标记记录已被检查; 所以我要做的是检索记录,检查一些东西,运行“更新”查询以将“last_checked_time”字段设置为 DateTime.Now,然后移动到下一条记录。 然后我可以获得按“last_checked_time”字段(升序)排序的所有记录,然后我可以遍历按检查时间排序的记录。
这是一个好的做法吗?只要该表上的记录不超过 1000 万条,它还能保持快速吗?
我在某处读到,每个“更新”查询实际上都是删除和创建新记录。
我还想提一下,我的 ASP.net 网站会经常检索这些记录..
我正在考虑在本地 txt 文件/二进制文件上写下“last_checked_time”,但我猜这意味着实现数据库已经可以为您做的事情。
最佳答案
如果您需要“上次检查时间”值,那么保存它的最佳、最有效的位置就是表中的行。无论表中有多少行,每次更新都只会影响您更新的行。
如何实现更新取决于 DBMS,但通常不会通过删除和重新插入行来完成。
关于c# - 每次从数据库中检索数据库记录时更新数据库记录 - 这是一个好习惯吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7122035/