哪个更快/更好:总是更新表和哈希,更新前检查


Which is faster/better: always update table vs hashing and check before update

我正在创建一个支持编辑器的网页。每当用户在编辑器中更改内容时,我都会使用ajax将此数据发送到服务器。通常,服务器会更新数据库来存储数据。但是,我认为这对性能不好,因为连续处理更新查询需要时间。

相反,我有一个主意。我将哈希内容(md5 alg)和保存代码在同一表。当新内容出现时,我对其进行散列并与旧代码进行比较。如果它们不相等,我将执行update。

然而,我不确定这个想法是好的,因为md5也需要时间(大约7秒1 MB)。你能给我一些建议吗?

可以在会话中保存最新的内容。如果新的ajax数据与会话中保存的数据相同,则不执行db update,否则执行。它将比md5或多个更新查询快得多。

代码应该像这样:

$new_data = $_POST['editor_text'];
if(!isset($_SESSION['editor_text']) || $_SESSION['editor_text'] != $new_data){
   $db->update($new_data);
   $_SESSION['editor_text'] = $new_data;
}
如果您的应用程序只有少数人使用,那么上面的

应该可以做到这一点。如果幸运的话,你的编辑器规模很大(1000+并发用户),在你的服务器上配置memcache,分配适当的内存,而不是在会话中保存文本,将其保存在memcache中。这会提高你的表现。