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. 什么情况下不适合使用索引
  • 当表中的数据量很小,且查询的数据比例很大时,可能不适合使用索引。
  • 经常进行大批量的插入、更新、删除操作时,索引的维护成本可能较高。
相关推荐
lang2015092819 小时前
oracle 11查询数据库锁
数据库·oracle
hweiyu0019 小时前
Oracle 基础入门:核心概念与实操指南(视频教程)
数据库·oracle
羊锦磊19 小时前
[ 项目开发 1.0 ] 新闻网站的开发流程和注意事项
java·数据库·spring boot·redis·spring·oracle·json
hjhcos19 小时前
【SQL server】不同平台相同数据库之间某个平台经常性死锁
数据库
tanxiaomi20 小时前
RocketMQ微服务架构实践:从入门到精通完整指南
数据库·rocketmq
羑悻的小杀马特20 小时前
openGauss 数据库快速上手评测:从 Docker 安装到SQL 实战
数据库·sql·docker·opengauss
德迅云安全-小潘20 小时前
SQL:从数据基石到安全前线的双重审视
数据库·sql·安全
Databend20 小时前
Databend SQL nom Parser 性能优化
数据库
码农阿豪20 小时前
离线部署指南:本地下载MySQL 8.0.37并上传服务器Centos7.9安装
服务器·mysql·adb
千寻技术帮20 小时前
50013_基于微信小程序的校园志愿者系统
mysql·微信小程序·springboot·文档·ppt