程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MySQL語句相關經驗總結

MySQL語句相關經驗總結

編輯: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 倍

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved