In general, select COUNT (*) and select COUNT (1) are returned with the same result.
If the table does not have a primary key (Primary key), then count (1) is faster than count (*).
If there is a primary key, the primary key is the fastest as count (primary key)
If your table has only one field, the count (*) is the fastest
Count (*), like the result of Count (1), includes null statistics, and Count (column) is a statistic that does not include null
1. The difference between Select 1 and select *
SELELCT constant from ... For all rows, there is always one value returned, that is, a constant. So normal will only be used to determine whether there are or not (such as the EXISTS clause). and select * From ... is all columns that return all rows.
The difference in performance is the key to looking at your from and WHERE clauses. For example, if your where condition can be indexed, then obviously select 1 from ... Performance than select * From ... Good.
2. Use of select SUM (1)
Select COUNT (*) returns the number of records that meet the criteria, at which point the same as select SUM (1)
But sum () can pass any number, negative numbers, floating point numbers can be, the return value is the incoming value n * satisfies the condition record number M
From: http://blog.csdn.net/hzhsan/article/details/9186831