Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

mysql 索引优化

作者:Xn﹏仍嘫佷痌   发布日期:2025-06-04   浏览:51

-- 创建表并插入数据
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;

解释说明:

  • 索引的作用:索引可以显著提高查询的速度,尤其是在处理大量数据时。通过在常用的查询列上创建索引,MySQL 可以更快速地找到符合条件的记录,而不需要扫描整个表。
  • 示例代码中的操作
    • 创建了一个 employees 表,并插入了一些示例数据。
    • department_id 列上创建了一个索引,以优化基于该列的查询。
    • 使用 EXPLAIN 命令查看查询计划,确认索引是否被使用。
    • 最后展示了如何删除索引。

上一篇:mysql outer join

下一篇:mysql 查询表索引

大家都在看

mysqlavg函数保留小数

mysql经纬度距离计算

存储过程mysql

mysql with语句

mysql时间加减

brew 启动mysql

unsigned在mysql中是什么意思

mysql 插入更新

python mysql update

mysql 查看权限

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站