我正在开发一个.NET应用程序,我们在远程数据库上执行许多查询。
有一个字符串,可以是几段长,用户可以更改。
现在,我们正在使用该字符串并在我们的数据库中更新它,无论字符串是否被更改。
我正在考虑在从数据库中检索字符串并将其与客户端返回的内容进行比较时保存字符串。如果字符串相同,我不进行数据库查询,如果它们不同,我会进行查询。
由于字符串可能有几段长,因此进行字符串比较可能需要很长时间,保存字符串也会占用空间。我最好保持系统不变,还是应该进行字符串比较以确定是否需要进行数据库更新?
答案 0 :(得分:2)
由于客户端上的字符串比较是在内存中完成的,并且因为您不需要搜索旧字符串,所以检查相等性会非常快。它也会以自然分布的方式发生,因为每个客户都会进行自己的比较。
相反,将字符串发送到服务器会很慢,因为网络操作不可避免地比同一数据上的线性时间内存操作慢。此外,所有更新都将在单个服务器上进行,从而增加系统集中组件的负载。
如果字符串在很多情况下保持不变,那么最好在内存中进行比较以减少往返次数。
另一方面,如果字符串很少保持不变,则可以通过删除此优化来简化代码。