【发布时间】:2011-12-14 18:39:20
【问题描述】:
我知道这是一个被多次描述的常见问题。 但我仍然无法得到一些东西——性能呢?哪种方法更快?
实际上,我需要一个简单的东西:页面发出 POST 请求:id=0,name='John'。服务器端脚本应检查 id=0,然后在 DB 中创建新记录,否则更新现有记录。
我认为 get() 对我来说更有用,因为如果 DB 中不存在记录,它将返回 NULL,而 load() 可以返回一些临时对象。对吗? 谢谢
【问题讨论】:
-
这取决于很多事情。可能是大多数底层数据库。另外找到/未找到的比例是多少?从您的表述看来,您似乎预计会有很多“失误”。
-
found/not found 表示具有此类 id 的记录实际上存在于数据库中。假设我需要一些独特的方法来检查数据库中是否存在记录(通过 load() 或 get() 方法),但不以牺牲性能为代价
-
是的,但是比率是多少,即“未找到”与“找到”的概率是多少。
-
廉价的解决方案是对您在条件 id 列中使用的表执行计数查询。如果您要检索大对象以检查它是否在数据库中,这可能会有所帮助。