LINUX-MySQL索引管理

1.索引简介

|----------------|----------------------------------|
| 无索引 | 有索引 |
| 1.全表扫描(全局查找内容) | 1.索引扫描(按一定规律的查找内容) |
| | 优点 2.极大提高查询速度 3.确保数据唯一性 4.加速表间连接 |
| | 优点 2.极大提高查询速度 3.确保数据唯一性 4.加速表间连接 |
| | 优点 2.极大提高查询速度 3.确保数据唯一性 4.加速表间连接 |
| | 缺点 1.占用额外存储空间 2.降低数据写入速度 |
| 1.对于读多写少的应用,创建合适的索引是优化数据库查询性能最有效的手段之一 2.索引不是越多越好,需要根据实际创建 ||
[无索引与有索引]

|------|------------------------------|
| 普通索引 | 最基本索引,没有任何限制,仅用于加速查询 |
| 唯一索引 | 与普通索引类似,但要求索引列值唯一,允许空值 |
| 主键索引 | 一种特殊的唯一索引,不允许为空。一个表只能有一个主键索引 |
| 全文索引 | 用于全文搜索 |
[按逻辑功能划分索引]

|--------|-------------------------------------------|
| 创建普通索引 | ALTER TABLE 表名 ADD INDEX 索引名 (字段名); |
| 创建唯一索引 | ALTER TABLE 表名 ADD UNIQUE INDEX 索引名(字段名); |
| 创建主键索引 | ALTER TABLE 表名 ADD PRIMARY KEY(字段名); |
| 创建全文索引 | ALTER TABLE 表名 ADD FULLTEXT(字段名); |
| 删除索引 | ALTER TABLE 表名 DROP INDEX 索引名; |
| 查看索引 | SHOW INDEX FROM 表名;或者\G |
[索引语句]

2.有索引与无索引的差异

2.1创建测试环境

复制代码
create database cloud2026;

use cloud2026

CREATE TABLE students (
    id INT AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(50),
    email VARCHAR(100),
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

DELIMITER //

CREATE PROCEDURE InsertLargeData()
BEGIN
    DECLARE i INT DEFAULT 1;
    WHILE i <= 1000000 DO
        INSERT INTO students (username, email)
        VALUES (CONCAT('user', i), CONCAT('user', i, '@126.com'));
        SET i = i + 1;
    END WHILE;
END//

DELIMITER ;

CALL InsertLargeData();

INSERT INTO students (username, email) VALUES ('NATASHA', 'NATASHA131420@126.com');

2.2无索引查询

2.3有索引查询

为username添加索引idx_username

复制代码
ALTER TABLE students ADD INDEX idx_username(username);
查看执行计划
复制代码
EXPLAIN SELECT * FROM students WHERE username="NATASHA"\G
相关推荐
动力 continue16 分钟前
MySQL 基础篇 · SELECT 查询大
数据库·sql·mysql·select
程序员-Benothing36 分钟前
MySQL 索引下推是什么?——深入理解 ICP 原理与实践
android·数据库·mysql
这个DBA有点耶39 分钟前
MySQL主从延迟的“最后一公里”:如何把延迟压到极限
数据库·程序员·架构
DianSan_ERP1 小时前
WMS接入电商平台自动化履约实战:一张订单从平台到出库的接口时序设计
java·前端·网络·数据库·安全·架构·自动化
智购科技自动售货机工厂1 小时前
2026自动售货机语音支付模块集成:从声纹识别到支付闭环的工程实践~YH
大数据·服务器·网络·数据库·人工智能
做一个AK梦2 小时前
论基于云原生数据库的企业信息系统架构设计
数据库·云原生
风哥2号2 小时前
PostgreSQL数据库恢复工具FGPDU(FGEDU PostgreSQL DUL)
数据库·postgresql
智购科技智能售货柜2 小时前
2026自动售货机峰值交易流量应对方案:从消息削峰到弹性扩容的工程实践~YH
数据库·人工智能·单片机·嵌入式硬件·yolo
JavaPub-rodert3 小时前
Ontop 详解:不搬数据库,也能把 MySQL / PostgreSQL 变成知识图谱
数据库·mysql·postgresql
xiaoxiang96093 小时前
Git 分支同步实战:`merge -X theirs` 与完全合并方案
数据库·git·elasticsearch