current position：Home>Count() function of MySQL
Count() function of MySQL
2022-01-27 01:47:03 【Under the night light】
First time to know COUNT
COUNT(expr) , return SELECT In the line retrieved by the statement expr The value of the NULL The number of . The result is a
BIGINT value . If the query results do not hit any records , Then return to 0
COUNT( Constant ) and
COUNT(*) It refers to the number of qualified rows in the direct query database . Column values of... Are not ignored NULL
COUNT( Name ) It refers to the qualified columns in the query database, and the value is not NULL( The null here is not just an empty string or 0, It means null) The number of rows .
COUNT(*) yes SQL92 The syntax for defining the number of standard statistics lines , Because it's standard syntax , therefore MySQL The database has been optimized a lot .
SQL92 It's one of the databases ANSI/ISO standard . It defines a language （SQL） And the behavior of the database （ Business 、 Isolation level, etc ）.
Scan tables through low-cost indexes , Instead of focusing on the specific contents of the table ,InnoDB The indexes in are divided into clustered indexes ( primary key ) And non clustered indexes ( Non primary key index ), The leaf node of the cluster index stores the whole row of records , Instead, the leaf node of the non clustered index stores the value of the primary key of the row record ,MySQL The smallest non clustered index will be preferred to scan the table , The premise of optimization is that the query statement does not contain where Conditions and group by Conditions
COUNT(1) and COUNT(*) The difference between
MySQL Official documents say so ：
InnoDB handles SELECT COUNT(*) and SELECT COUNT(1) operations in the same way. There is no performance difference.
therefore , about
count(*),MySQL The optimization of is exactly the same , There is no one who is faster ！
But it is still recommended to use
count(*), Because this is SQL92 The syntax for defining the number of standard statistics lines .
Alibaba Development Manual ：
On the effect of execution ：
count(*)It includes all the columns , Equivalent to the number of lines , When it comes to statistical results , Column values of... Are not ignored NULL
count(1)Including all the columns , use 1 Represents the line of code , When it comes to statistical results , Column values of... Are not ignored NULL
count( Name )Only include the column of the list , When it comes to statistical results , Will ignore null column values （ The null here is not just an empty string or 0, It means null） Count of , That is, the value of a field is NULL when , No statistics .
In terms of execution efficiency ：
The column name is primary key ,
count( Name )than
Column name is not primary key ,
count( Name )fast
If the table has multiple columns and no primary key , be
count(1)Is superior to the execution efficiency
If there is a primary key , be
select count( Primary key )The efficiency of execution is optimal
If the table has only one field , be
select count（*）The optimal
author[Under the night light],Please bring the original link to reprint, thank you.
The sidebar is recommended
- Spring IOC container loading process
- [thinking] the difference between singleton mode and static method - object-oriented programming
- Hadoop environment setup (MySQL environment configuration)
- 10 minutes, using node JS creates a real-time early warning system for bad weather!
- Git tool
- Force deduction algorithm - 92 Reverse linked list II
- What is the sub problem of dynamic programming?
- C / C + +: static keyword summary
- Idea does not have the artifacts option when configuring Tomcat
- Anaconda can't open it
guess what you like
I don't know how to start this
Matlab simulation of transportation optimization algorithm based on PSO
MySQL slow log optimization
[Vue] as the window is stretched (larger, smaller, wider and higher), the text will not be displayed
Popular Linux distributions for embedded computing
Suzhou computer research
After installing SSL Certificate in Windows + tomcat, the domain name request is not successful. Please answer!!
Implementation time output and greetings of jQuery instance
The 72 year old uncle became popular. Wu Jing and Guo fan made his story into a film, which made countless dreamers blush
How to save computer research
- Springboot implements excel import and export, which is easy to use, and poi can be thrown away
- The final examination subjects of a class are mathematical programming, and the scores are sorted and output from high to low
- Two pronged approach, Tsinghua Professor Pro code JDK and hotspot source code notes, one-time learning to understand
- C + + recursive knapsack problem
- The use of GIT and GitHub and the latest git tutorial are easy to understand -- Video notes of crazy God speaking
- PostgreSQL statement query
- Ignition database test
- Context didn't understand why he got a high salary?, Nginxfair principle
- Bootstrap switch switch control user's guide, springcloud actual combat video
- A list that contains only strings. What other search methods can be used except sequential search
- [matlab path planning] multi ant colony algorithm grid map path planning [including GUI source code 650]
- [matlab path planning] improved genetic algorithm grid map path planning [including source code phase 525]
- Iinternet network path management system
- Appium settings app is not running after 5000ms
- Reactnative foundation - 07 (background image, status bar, statusbar)
- Reactnative foundation - 04 (custom rpx)
- If you want an embedded database (H2, hsql or Derby), please put it on the classpath
- When using stm32g070 Hal library, if you want to write to flash, you must perform an erase. If you don't let it, you can't write continuously.
- Linux checks where the software is installed and what files are installed
- SQL statement fuzzy query and time interval filtering
- 69. Sqrt (x) (c + + problem solving version with vs runnable source program)
- Fresh students are about to graduate. Do you choose Java development or big data?
- Java project: OA management system (java + SSM + bootstrap + MySQL + JSP)
- Titanic passenger survival prediction
- Vectorization of deep learning formula
- Configuration and use of private image warehouse of microservice architect docker
- For someone, delete return 1 and return 0
- How does Java dynamically obtain what type of data is passed? It is used to judge whether the data is the same, dynamic data type
- How does the database cow optimize SQL?
- [data structure] chain structure of binary tree (pre order traversal) (middle order traversal) (post order traversal) (sequence traversal)
- Webpack packaging optimization solution
- 5. Operation element
- Detailed explanation of red and black trees
- redhat7. 9 install database 19C
- Blue Bridge Cup notes: (the given elements are not repeated) complete arrangement (arrangement cannot be repeated, arrangement can be repeated)
- Detailed explanation of springboot default package scanning mechanism and @ componentscan specified scanning path
- How to solve the run-time exception of test times
- Detailed explanation of k8s management tool kubectl
- Android system view memory command