• 有关UPDATE操作的一些想法


    我们平常写代码的时候,无疑都会接触大量的数据CURD操作。第一反应是这太简单了,那么你在编写UPDATE操作的时候是怎样的逻辑呢?比较下面两段伪代码:

    code exp.1

    $SQL = "UPDATE `table_name` SET `a`='A', `b`='B', `c`='C' WHERE `id`=$id ";
    $res = $db->query ($SQL);
    if ($res) {
        return TRUE;
    } else {
        return FALSE;
    }
    

    code exp.2

    $SQL = "SELECT `a`,`b`,`c` FROM `table_name` WHERE `id`=$id ";
    $old = $db->query ($SQL)->fetch ();
    if ( $old['a'] == $a && $old['b'] == $b && $old['c'] == $c ) {
        return TRUE;
    }
    $SQL = "UPDATE `table_name` SET `a`='$a', `b`='$b', `c`='$c' WHERE `id`=$id ";
    $res = $db->execute ($SQL);
    if ($res) {
        return TRUE;
    } else {
        return FALSE;
    }
    

    ============
    如果单纯从查询次数来看,exp.1始终是一次,而exp.2是 1~2次。看起来exp.1 更好一些,我也觉得在一些简单应用场景确实是这样的。可是如果在一个大型应用,每次用户的UPDATE都执行一次写入操作真的好吗?
    这种情况下可以适当牺牲一些读操作以减少写入操作,首先在数据缓存上可以拦截大部分数据库读取请求,其次在数据库层面可以配置主从集群负载均衡等策略保证读取性能。所以我认为大型应用还是exp.2更合适。
    以上个人感想,欢迎批评指正

  • 相关阅读:
    辅助方法、模型、视图数据
    HTML.Label
    HTML辅助方法
    ViewBag与ViewData
    ASP.NET MVC4 View 指定视图
    ASP.NET MVC4 配置逻辑
    大部分基于MVC的Web框架所使用的一些基本原则
    MVC内置的验证属性
    高德地图多点标记自定义地图
    关于数组的去重
  • 原文地址:https://www.cnblogs.com/dapianzi/p/7065559.html
Copyright © 2020-2023  润新知