`
jsntghf
  • 浏览: 2546826 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

mysql中select count(primary)、count(1)、count(*)的区别

阅读更多

有这样一个表结构:

 

 

mysql> desc entries;
+------------+--------------+------+-----+---------+----------------+
| Field      | Type         | Null | Key | Default | Extra          |
+------------+--------------+------+-----+---------+----------------+
| id         | int(11)      | NO   | PRI | NULL    | auto_increment |
| title       | varchar(100) | YES  |     | NULL    |                |
| content | varchar(2000)     | YES  |     | NULL    |                |
+------------+--------------+------+-----+---------+----------------+
3 rows in set (0.00 sec)

 

三种查询方式比较如下:

 

 

mysql> explain select count(id) from entries;
+----+-------------+---------+-------+---------------+---------+---------+------+------+-------------+
| id | select_type | table   | type  | possible_keys | key     | key_len | ref  | rows | Extra       |
+----+-------------+---------+-------+---------------+---------+---------+------+------+-------------+
|  1 | SIMPLE      | entries | index | NULL          | PRIMARY | 4       | NULL |   25 | Using index |
+----+-------------+---------+-------+---------------+---------+---------+------+------+-------------+
1 row in set (0.00 sec)

mysql> explain select count(1) from entries;
+----+-------------+---------+-------+---------------+---------+---------+------+------+-------------+
| id | select_type | table   | type  | possible_keys | key     | key_len | ref  | rows | Extra       |
+----+-------------+---------+-------+---------------+---------+---------+------+------+-------------+
|  1 | SIMPLE      | entries | index | NULL          | PRIMARY | 4       | NULL |   25 | Using index |
+----+-------------+---------+-------+---------------+---------+---------+------+------+-------------+
1 row in set (0.00 sec)

mysql> explain select count(*) from entries;
+----+-------------+---------+-------+---------------+---------+---------+------+------+-------------+
| id | select_type | table   | type  | possible_keys | key     | key_len | ref  | rows | Extra       |
+----+-------------+---------+-------+---------------+---------+---------+------+------+-------------+
|  1 | SIMPLE      | entries | index | NULL          | PRIMARY | 4       | NULL |   25 | Using index |
+----+-------------+---------+-------+---------------+---------+---------+------+------+-------------+
1 row in set (0.00 sec)

 

通过上面的比较,我们可以看出,这3种方法的执行过程是一模一样的,不存在性能和效率上的差异。

分享到:
评论

相关推荐

    关于mysql中innodb的count优化问题分享

    MySQL中的InnoDB存储引擎在处理`COUNT(*)`查询时,会根据不同的索引类型和查询条件来决定执行效率。在优化`COUNT(*)`查询时,理解InnoDB的聚集索引(Clustered Index)和辅助索引(Secondary Index)的工作原理至关...

    Oracle与MYSQL的几点区别

    ### Oracle与MySQL的区别 在数据库管理系统领域,Oracle与MySQL因其各自独特的优势被广泛应用于不同的业务场景之中。本文将从几个具体的技术角度出发,探讨这两款数据库之间的差异。 #### 1. 分组查询(Group By)...

    MySQL基本知识点思维导图

    - **HAVING子句**: `SELECT * FROM table_name GROUP BY column1 HAVING COUNT(column1) > 5;` **2.3 联合查询** - **内连接**: `SELECT * FROM table1 INNER JOIN table2 ON table1.column = table2.column;` - *...

    MySQL SQL经典语句

    **1. 创建数据库** - **语法**: `CREATE DATABASE database-name;` - **说明**: 此命令用于创建一个新的数据库实例。`database-name`应替换为实际数据库名称。 **2. 删除数据库** - **语法**: `DROP DATABASE ...

    MySQL入门+进阶资源合集.pdf

    SELECT COUNT(*), AVG(amount) FROM orders; ``` ##### 2.2 性能优化 - **索引(Indexing)** - 创建索引可以提高数据检索速度。在频繁查询的列上创建索引,如经常作为WHERE条件的列。 - 示例:为`users`表的`...

    MySQL命令大全

    * 总数:SELECT COUNT(*) AS totalcount FROM table1 * 求和:SELECT SUM(field1) AS sumvalue FROM table1 * 平均:SELECT AVG(field1) AS avgvalue FROM table1 * 最大:SELECT MAX(field1) AS maxvalue FROM ...

    精确分析MySQL数据库中优化WHERE子句

    例如:mysql> SELECT * FROM t WHERE primary_key=1; 联结表的优化 在 WHERE 子句中,如果有多个联结表,可以尝试所有可能性以找到最好的联结组合,以提高查询的效率。 ORDER BY 和 GROUP BY 优化 在 WHERE 子句中...

    MySQL SQL优化 .docx

    - **误解:** 很多人认为count(1)或count(primary_key)比count(*)性能更好。 - **正确理解:** 实际上,对于count(*),数据库进行了特别优化,不一定比count(1)慢。 2. **count(column) vs count(*):** - **误解...

    Mysql最经典的语句集合

    根据给定文件的信息,我们可以总结出一系列MySQL中最经典且实用的SQL语句及数据库操作命令。这些内容对于经常使用MySQL数据库的开发人员来说是极为重要的,不仅能够帮助他们回顾和巩固基本的操作技能,还能在实际...

    MySQL数据库详细文档

    SELECT column1, COUNT(column2) FROM table GROUP BY column1; ``` `GROUP BY`子句用于对结果集进行分组,通常与聚合函数如COUNT(), SUM()等结合使用。 以上是MySQL数据库操作的一些基础和高级知识,这些命令和...

    MYSQL语句大全MYSQL语句大全

    - **总数**: `SELECT COUNT(*) AS totalcount FROM table1;` - **求和**: `SELECT SUM(field1) AS sumvalue FROM table1;` - **平均值**: `SELECT AVG(field1) AS avgvalue FROM table1;` - **最大值**: `SELECT...

    mysql语言总结

    **1. 创建数据库** - **命令格式**: `CREATE DATABASE database-name;` - **说明**: 此命令用于创建一个新的数据库。 - **示例**: `CREATE DATABASE myDatabase;` **2. 删除数据库** - **命令格式**: `DROP ...

    MySQL常用语句

    **1. 启动与停止数据库** - **启动数据库:** `net start mysql` (这里假设MySQL服务名为mysql,且使用默认的管理员账户root,密码为mysqladmin) - **停止数据库:** `net stop mysql` **说明:** 上述命令用于在...

    国开MySQL数据库应用形考任务4.docx

    1. **SELECT语句**:用于从表中检索数据。基本语法是`SELECT column1, column2... FROM table_name;`。 2. **单表查询**:查询单一条件或多个条件的数据。例如: ``` SELECT * FROM Products WHERE ProductName =...

    mysql 面试题.pdf

    1. **MySQL与其他数据库管理系统(如PostgreSQL, SQL Server)有何区别?** - **MySQL** 是一个开源的关系型数据库管理系统(RDBMS),由Oracle公司支持。它以轻量级、高性能著称,在Web应用领域非常流行。 - **...

    mySQL培训手册

    ### MySQL培训手册知识点详解 #### 一、MySQL数据库必备知识 ...以上是MySQL培训手册中的主要知识点,通过这些内容的学习,可以迅速掌握MySQL的基本操作与高级功能,为日后的工作打下坚实的基础。

    sql大全 经典 sql大全 经典

    **1. 创建数据库** - **语法**: `CREATE DATABASE database-name;` - **说明**: 用于创建一个新的数据库。 - **示例**: `CREATE DATABASE MyNewDatabase;` **2. 删除数据库** - **语法**: `DROP DATABASE ...

Global site tag (gtag.js) - Google Analytics