mysql中count(*)和count(1)和count(column)區別

在日常的mysql使用中,我們經常會看到SELECT COUNT(*)、SELECT COUNT(1)等查詢語句,他們到底有什么區別呢?今天我就來總結下。
我們先從函數的含義說起:

  1. count() 統計滿足查詢條件的結果集的總行數(包含null),其中count(1)和count()的處理邏輯完全相同
  2. count(column) 如果列定義時不允許為null,那么統計滿足查詢條件的不為null的總行數

由于innodb不能像MyISAM那樣記錄表的總行數,所以為了方便統計行數,MySQL 5.7.18后innodb對count(*)進行了優化:
原則:
基于占用空間最小的索引進行統計(減少磁盤IO),如果where條件能夠確定合適的輔助索引,就通過輔助索引進行數據統計。
操作:
1.如果只有聚簇索引,那么直接通過聚簇索引統計總行數。
2.因為一般情況下二級索引占用空間比聚簇索引小,所以如果存在二級索引,一般會尋找占用空間最小的二級索引進行統計。

最后說下性能:
count(*) = count(1) > count(column)
mysql文檔中提到了count()和count(1)兩者的統計方式完全相同,不存在任何性能差異(InnoDB handles SELECT COUNT() and SELECT COUNT(1) operations in the same way. There is no performance difference.),count(column) 會慢些,因為還需要判斷列是否為null。

reference:
mysql官方文檔:mysql count說明

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/450980.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/450980.shtml
英文地址,請注明出處:http://en.pswp.cn/news/450980.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

第一天筆記

編程語言分類: 1. 機器語言:用二進制指令編程,本質是直接操作硬件。 優點:執行效率高 缺點:開發效率低,學習難度高 2.匯編語言:用英文標簽代替二進制指令,本質也是直接操作硬件。…

索尼MOTO等壓榨國內代工廠:員工宿舍像監獄

摘要:據調查報告披露,偉易達血汗工廠的壓榨情況比起富士康、蘋果等有過之而無不及,包括強迫工人超負荷工作、暴露于有害化學物質、住宿環境差、虐待員工、超低的工資等。如前面保羅克魯格曼發表了《表揚廉價勞動》一文,N.D.克里斯…

[cerc2012][Gym100624B]20181013

轉載于:https://www.cnblogs.com/KonjakJuruo/p/9809637.html

Nginx服務器證書部署-亞洲誠信

Nginx服務器證書部署發布時間:2018-01-17 16:15:25依賴建議l SSL卸載驅動。建議:openssl版本1.1.0f。l nginx版本Stable version:最新穩定版,生產環境上建議使用的版本。獲取證書MPKI方式:1. 登錄https://mpki.tru…

java transient關鍵字

transient是用在序列化中的。當我們序列化的過程中,如果我們不想序列化某個字段,那么我們就可以使用這個關鍵字,jvm就會在序列化的時候自動忽略這個字段的數值。 transient主要有兩個用途: 1.保證數據的安全。在進行序列化時&…

UDDI

見:https://baike.baidu.com/item/UDDI/2901586?fraladdin UDDI 是一種目錄服務,企業可以使用它對 Web services 進行注冊和搜索。UDDI,英文為 "Universal Description, Discovery and Integration",可譯為“通用描述、…

騰訊手機管家籌劃“出海”

摘要:正籌劃推進旗下手機安全產品出海攬客。6月22日,騰訊無線安全產品部副總經理胡振東在上海表示,騰訊手機管家已推出了安卓國際版,下決心進軍國際市場。 騰訊(00700.HK)正籌劃推進旗下手機安全產品出海攬客。6月22日&#xff0c…

用反卷積(Deconvnet)可視化理解卷積神經網絡還有使用tensorboard

『cs231n』卷積神經網絡的可視化與進一步理解 深度學習小白——卷積神經網絡可視化(二) TensorBoard--TensorFlow可視化 原文地址:http://blog.csdn.net/hjimce/article/details/50544370 作者:hjimce 一、相關理論 本篇博文主要講…

java線程實現及線程池的使用

Java線程實現 線程把處理器的調度和資源分配分開,是cpu的最小調度單位。多個線程可以共享進程的內存資源,又可以獨立調度。java線程關鍵方法都是通過高效的本地方法實現的。Java線程的主要實現方式有三種:內核實現、用戶實現、內核用戶混合實…

SOAP:簡單對象訪問協議

見:https://baike.baidu.com/item/%E7%AE%80%E5%8D%95%E5%AF%B9%E8%B1%A1%E8%AE%BF%E9%97%AE%E5%8D%8F%E8%AE%AE/3841505?fraladdin&fromid4684413&fromtitleSOAP 簡單對象訪問協議 SOAP(簡單對象訪問協議)一般指簡單對象訪問協議 …

程序調試

對拍 $ Windows $ 下的對拍程序 借助 \(Windows\) 腳本echo off :loop r.exe > input.in coronas.exe <input.in > output.a std.exe <input.in > output.b fc output.a output.b if not errorlevel 1 goto loop 一直沒有找到怎樣能控制對拍次數,今天終于醒悟,可…

不怕燒錢怕翻車:雷軍與馬化騰現場“過招”

說起微信&#xff0c;很多時尚潮人都很熟悉。這款軟件可以發送語音信息、可以在有無線網絡的地方免費發送、甚至只需搖一搖就能找到在你附近的用戶&#xff0c;這些方便、時尚、新穎的元素使微信受到了很多用戶的喜愛&#xff0c;也奪得了大量的市場。其實&#xff0c;在微信發…

php基礎(一)

1、header(contentType:text/html,charset:utf-8)設置編碼 2、查找字符串最后一次出現的 strrpos() 查找字符第一次出現的 strpos 3、array_sum() 返回數組值得和 4、func_num_args() 求函數參數的個數 5、func_get_args() 獲取函數的所有參數 6、匿名函數 例子 $anonymityfun…

Thread.yield()和Thread.sleep(0)

關于Thread.yield()和Thread.sleep(0)的語義問題真是一個讓人撓頭的問題&#xff0c;翻了好多資料&#xff0c;在java6語言規范中看到了一段這樣的描述&#xff1a; 重點在紅框中&#xff0c;簡而言之就是&#xff1a;sleep(0)和yield()的實現不需要任何可見的效果。那么在實現…

OOA:面向對象

見&#xff1a;https://baike.baidu.com/item/OOA/3659916?fraladdin OOA:面向對象&#xff1a; Object-Oriented Analysis&#xff08;面向對象分析方法&#xff09;是確定需求或者業務的角度&#xff0c;按照面向對象的思想來分析業務。例如&#xff1a;OOA只是對需求中描述…

DCT原型 ——傅里葉級數

傅里葉級數 法國數學家傅里葉發現&#xff0c;任何周期函數都可以用正弦函數和余弦函數構成的無窮級數來表示&#xff08;選擇正弦函數與余弦函數作為基函數是因為它們是正交的&#xff09;&#xff0c;后世稱為傅里葉級數&#xff08;法語&#xff1a;srie de Fourier&#xf…

c 遞歸算法

#include <stdio.h>double factorial(unsigned int i) {if(i < 1){return 1;}return i * factorial(i - 1); } int main() {int i 15;printf("%d 的階乘為 %f\n", i, factorial(i));return 0; } 轉載于:https://www.cnblogs.com/sea-stream/p/9822437.htm…

紅黑樹和B+樹

&#xff08;一&#xff09;紅黑樹 紅黑樹是一種自平衡二叉查找樹&#xff0c;也被稱為"對稱二叉B樹"&#xff0c;它可以在O(logn)時間內利用 O(logn)的空間來完成查找、插入、刪除操作。紅黑樹的讀操作與普通二叉查找樹相同&#xff0c;而插入和刪除操作可能會破壞…

策略模式、觀察者模式、代理模式、裝飾模式 應用場景和實現

有個大神寫的很好&#xff1a; 參考&#xff1a;設計模式學習筆記&#xff08;四&#xff1a;策略模式&#xff09; 參考&#xff1a;設計模式學習筆記&#xff08;二&#xff1a;觀察者模式&#xff09; 參考&#xff1a;設計模式學習筆記-代理模式 參考&#xff1a;設計模式-…

DQL、DML、DDL、DCL的概念與區別

http://blog.csdn.net/tomatofly/article/details/5949070 SQL語言的分類 SQL語言共分為四大類&#xff1a;數據查詢語言DQL&#xff08;Data Query Language&#xff09;&#xff0c;數據操縱語言DML&#xff0c;數據定義語言DDL(Data Definition Language)&#xff0c;數據…