MySQL-索引的介绍和使用

MySQL 支持哪些类型的索引?

主键索引(Primary Key Index)

唯一索引(Unique Index)

普通索引(Normal Index)

全文索引(Full-text Index)

组合索引(Composite Index)


1. 索引的使用

  1. 创建索引
    使用 CREATE INDEX 语句或在创建表时直接指定索引。
bash 复制代码
-- 创建单列索引
CREATE INDEX index_name ON table_name(column_name);

-- 创建唯一索引
CREATE UNIQUE INDEX index_name ON table_name(column_name);

-- 创建组合索引
CREATE INDEX index_name ON table_name(column1, column2);
  1. 查看索引
bash 复制代码
SHOW INDEX FROM table_name;
  1. 删除索引
    -- 删除表的某个索引
bash 复制代码
DROP INDEX index_name ON table_name;

-- 删除表的主键索引

bash 复制代码
ALTER TABLE table_name DROP PRIMARY KEY;
  1. 使用 EXPLAIN 分析查询执行计划
bash 复制代码
EXPLAIN SELECT * FROM table_name WHERE column_name = 'value';
  1. 如何优化查询,使索引生效
  • 确保查询中的条件列上有索引。
  • 尽量避免在索引列上使用函数或运算符。
  • 使用合适的索引类型,如全文索引适用于文本搜索。
  1. 如何避免索引失效?
  • 尽量避免使用 NOT、<、>、!= 等不利于索引的条件。
  • 注意索引列的数据类型匹配。
  • 小心使用 OR 连接的条件。
  1. 什么情况下不适合使用索引
  • 当表中的数据量很小,且查询的数据比例很大时,可能不适合使用索引。
  • 经常进行大批量的插入、更新、删除操作时,索引的维护成本可能较高。
相关推荐
码少女1 小时前
Linux--多路转接之select
java·服务器·数据库
梁辰兴2 小时前
软件工程:软件维护的副作用
数据库·软件工程·梁辰兴·控制方法·软件维护的副作用·副作用类型·副作用原因
这个DBA有点耶2 小时前
MySQL 8.0.20移除了Block Nested Loop,之前学的JOIN优化知识还适用吗?
数据库·mysql·架构
吉甫作诵2 小时前
Redis 常用命令大全:11 大类命令速查手册
运维·数据库·redis·缓存·nosql
2501_933670792 小时前
库存管理分析岗校招能力模型:SQL、库存周转、补货预测怎么准备
数据库
属于自己的天空3 小时前
不用再手动查表结构了:配好 MCP,Claude Code 自己读数据库生成代码
数据库·后端
Y3815326623 小时前
SERP 数据清洗实战:字段标准化、日期解析与去重键
开发语言·数据库·python·python数据库
Databend3 小时前
Databend 原生数据血缘:追溯指标来源,检查变更影响
大数据·数据库·sql
镜舟科技4 小时前
Semantic View 技术解析(二):业务口径如何进入数据库执行路径
数据库·sql·agent
TechWJ4 小时前
没有公网 IP 也想远程连 PostgreSQL?从本地数据库到固定 TCP 地址完整配置
大数据·数据库·网络安全·postgresql·内网穿透