MySQL语句相关经验总结
2024-10-19 00:19:49
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 倍
最新文章
- 【Unity3d】Ray射线初探-射线的原理及用法
- Lnmp环境的自搭建
- SBM is Not Sale And Run Company
- hostname
- nginx做负载均衡配置文件
- 什么是Code Review
- Android中图片的目录
- Linux Centos 系统上安装BT客户端 Transmission
- RF接口测试本地环境部署
- 第一次使用unity3d
- kafka原理和实践(六)总结升华
- redis 系列21 复制Replication (上)
- 重写apply, call, bind方法
- Java面试题整理---网络篇
- ARMCortex系列仿真调试器
- PCA主成分分析+白化
- 【架构师之路】Nginx负载均衡与反向代理—《亿级流量网站架构核心技术》
- charles使用教程 干货~
- A - 还是畅通工程(最小生成树)
- 我所了解的关于JavaScript定义类和对象的几种方式
热门文章
- iis与 asp.net管道(asp.net应用程序什么周期)
- Day3:T1数论+高精 T2搜索
- [转]OPENSOLARIS 2009.06 REPOSITORY ISO IMAGES NOW AVAILABLE
- BlackBerry Phonegap项目的搭建
- (转)JS中公共/私有变量和方法
- CVPR 2013
- 扩展jquery easyui datagrid编辑单元格
- Windows 安装Mongoliadb
- excel==>;csv==via phpmyadmin (edit php.ini &; my.ini)==>; MySQL Database
- 设置session超时