zoukankan      html  css  js  c++  java
  • 有关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更合适。
    以上个人感想,欢迎批评指正

  • 相关阅读:
    Selenium定位iframe动态ID
    selenium.webdriver元素定位失败
    pip 安装 request 失败
    postman 参数传递
    阿里云ECS服务器centos6.x安装docker问题盘点
    用户体验测试
    十大百度搜索技巧
    软件测试的目的与原则
    测试bug级别定义
    医药下乡管理系统(ssm,mysql)
  • 原文地址:https://www.cnblogs.com/dapianzi/p/7065559.html
Copyright © 2011-2022 走看看