有这样一个表结构:
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(*)`查询时,会根据不同的索引类型和查询条件来决定执行效率。在优化`COUNT(*)`查询时,理解InnoDB的聚集索引(Clustered Index)和辅助索引(Secondary Index)的工作原理至关...
### Oracle与MySQL的区别 在数据库管理系统领域,Oracle与MySQL因其各自独特的优势被广泛应用于不同的业务场景之中。本文将从几个具体的技术角度出发,探讨这两款数据库之间的差异。 #### 1. 分组查询(Group By)...
- **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;` - *...
**1. 创建数据库** - **语法**: `CREATE DATABASE database-name;` - **说明**: 此命令用于创建一个新的数据库实例。`database-name`应替换为实际数据库名称。 **2. 删除数据库** - **语法**: `DROP DATABASE ...
SELECT COUNT(*), AVG(amount) FROM orders; ``` ##### 2.2 性能优化 - **索引(Indexing)** - 创建索引可以提高数据检索速度。在频繁查询的列上创建索引,如经常作为WHERE条件的列。 - 示例:为`users`表的`...
* 总数: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> SELECT * FROM t WHERE primary_key=1; 联结表的优化 在 WHERE 子句中,如果有多个联结表,可以尝试所有可能性以找到最好的联结组合,以提高查询的效率。 ORDER BY 和 GROUP BY 优化 在 WHERE 子句中...
- **误解:** 很多人认为count(1)或count(primary_key)比count(*)性能更好。 - **正确理解:** 实际上,对于count(*),数据库进行了特别优化,不一定比count(1)慢。 2. **count(column) vs count(*):** - **误解...
根据给定文件的信息,我们可以总结出一系列MySQL中最经典且实用的SQL语句及数据库操作命令。这些内容对于经常使用MySQL数据库的开发人员来说是极为重要的,不仅能够帮助他们回顾和巩固基本的操作技能,还能在实际...
SELECT column1, COUNT(column2) FROM table GROUP BY column1; ``` `GROUP BY`子句用于对结果集进行分组,通常与聚合函数如COUNT(), SUM()等结合使用。 以上是MySQL数据库操作的一些基础和高级知识,这些命令和...
- **总数**: `SELECT COUNT(*) AS totalcount FROM table1;` - **求和**: `SELECT SUM(field1) AS sumvalue FROM table1;` - **平均值**: `SELECT AVG(field1) AS avgvalue FROM table1;` - **最大值**: `SELECT...
**1. 创建数据库** - **命令格式**: `CREATE DATABASE database-name;` - **说明**: 此命令用于创建一个新的数据库。 - **示例**: `CREATE DATABASE myDatabase;` **2. 删除数据库** - **命令格式**: `DROP ...
**1. 启动与停止数据库** - **启动数据库:** `net start mysql` (这里假设MySQL服务名为mysql,且使用默认的管理员账户root,密码为mysqladmin) - **停止数据库:** `net stop mysql` **说明:** 上述命令用于在...
1. **SELECT语句**:用于从表中检索数据。基本语法是`SELECT column1, column2... FROM table_name;`。 2. **单表查询**:查询单一条件或多个条件的数据。例如: ``` SELECT * FROM Products WHERE ProductName =...
1. **MySQL与其他数据库管理系统(如PostgreSQL, SQL Server)有何区别?** - **MySQL** 是一个开源的关系型数据库管理系统(RDBMS),由Oracle公司支持。它以轻量级、高性能著称,在Web应用领域非常流行。 - **...
### MySQL培训手册知识点详解 #### 一、MySQL数据库必备知识 ...以上是MySQL培训手册中的主要知识点,通过这些内容的学习,可以迅速掌握MySQL的基本操作与高级功能,为日后的工作打下坚实的基础。
**1. 创建数据库** - **语法**: `CREATE DATABASE database-name;` - **说明**: 用于创建一个新的数据库。 - **示例**: `CREATE DATABASE MyNewDatabase;` **2. 删除数据库** - **语法**: `DROP DATABASE ...