zoukankan      html  css  js  c++  java
  • MySQL语句相关经验总结

    1. 字段自减

    UPDATE `table_name` SET `total`=IF(`total` < 1, 0, `total`-1) WHERE `id` = 1;

    一般在做字段减法的时候我们需要在外部判断一次数值

    这样可以省去一次外部数值判断的查询,也可以防止无符号字段 total 为0时 数值溢出,将变成最大值或者报错的情况

     


    2. UPDATE 的 SET 使用子查询数据

    UPDATE `bz_xs_chapter` AS c,
    (SELECT COUNT(*) AS total FROM `bz_xs_chapter` WHERE `bookId` = 22042) AS c1,
    (SELECT COUNT(*) AS total FROM `bz_xs_tome` WHERE `bookId` = 22372) AS c2
    SET
    `c`.`name`=`c1`.`total`, 
    `c`.`words`=`c2`.`total` 
    WHERE `c`.`id` = 2889820

    这样可以通过子查询一次更新多个字段值,效率要高很多了吧

     


    3. COUNT(*)效率高

    之前看过许多相关帖子,有的说使用 COUNT(id) 效率高,各说各的看起来都有理,但自己测试:

    270W数据,350MB大小数据表,COUNT(*) 比 COUNT(id) 速度快了至少 10 倍 甚至 100 倍







  • 相关阅读:
    验证码处理函数
    Apache2.2下载及安装
    centos6.4、6.5、7.0环境下载及安装
    数据库实务 实务隔离级别
    InnoDB 锁
    索引常见问题处理
    数据库索引 B-Tree索引 hash索引
    JVM学习-(2)
    jvm学习-(1)
    linux杂记
  • 原文地址:https://www.cnblogs.com/zhouzme/p/5758464.html
Copyright © 2011-2022 走看看