网站地图    收藏   

主页 > 后端 > mysql数据库 >

MySQL语句相关经验总结 - mysql数据库栏目 - 自学

来源:自学PHP网    时间:2015-04-16 10:51 作者: 阅读:

[导读] 1 字段自减UPDATE `table_name` SET `total`=IF(`total` 1, 0, `total`-1) WHERE `id` = 1;一般在做字段减法的时候我们需要在外部判断一次数 20540;这样可以省去一次外部数 20540;判...

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 倍

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论