-- 创建表并插入数据
CREATE TABLE employees (
id INT AUTO_INCREMENT PRIMARY KEY,
first_name VARCHAR(50),
last_name VARCHAR(50),
department_id INT,
salary DECIMAL(10, 2)
);
INSERT INTO employees (first_name, last_name, department_id, salary)
VALUES ('John', 'Doe', 1, 50000.00),
('Jane', 'Smith', 2, 60000.00),
('Alice', 'Johnson', 1, 55000.00),
('Bob', 'Brown', 3, 70000.00);
-- 添加索引以优化查询性能
-- 对 department_id 列添加索引,因为经常根据部门查询员工信息
CREATE INDEX idx_department ON employees (department_id);
-- 查询所有在部门 1 的员工信息
EXPLAIN SELECT * FROM employees WHERE department_id = 1;
-- 解释:
-- 1. `CREATE INDEX idx_department ON employees (department_id);`:为 `employees` 表的 `department_id` 列创建索引,可以加快基于 `department_id` 的查询速度。
-- 2. `EXPLAIN SELECT * FROM employees WHERE department_id = 1;`:使用 `EXPLAIN` 查看查询计划,确认是否使用了索引。如果没有索引,MySQL 可能会进行全表扫描,而有了索引后,MySQL 可以更快地定位到所需的数据行。
-- 删除索引(如果需要)
DROP INDEX idx_department ON employees;
employees
表,并插入了一些示例数据。department_id
列上创建了一个索引,以优化基于该列的查询。EXPLAIN
命令查看查询计划,确认索引是否被使用。上一篇:mysql outer join
下一篇:mysql 查询表索引
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站