MST

星途 面试题库

面试题:MySQL中如何优化查询某列最大值与最小值的性能

假设有一张名为`employees`的表,包含`employee_id`(主键)、`name`、`salary`等字段。现在要查询`salary`字段的最大值和最小值,在数据量较大的情况下,如何优化这条查询语句以提高性能?请写出优化后的SQL语句并简要说明优化思路。
40.6万 热度难度
数据库MySQL

知识考点

AI 面试

面试题答案

一键面试

优化思路

在数据量较大时,全表扫描查询最大值和最小值效率较低。可以通过建立索引来优化。对于数值类型的salary字段,创建索引后,数据库在查找最值时可以利用索引的有序性快速定位到最值,避免全表扫描。

优化后的SQL语句

假设使用的是MySQL数据库:

-- 先创建索引
CREATE INDEX idx_salary ON employees(salary); 

-- 查询最大值和最小值
SELECT MAX(salary) AS max_salary, MIN(salary) AS min_salary 
FROM employees; 

这样在查询时,数据库可以利用idx_salary索引快速找到salary字段的最大值和最小值,提高查询性能。