如何加索引?

✅ 一句话区分

  • 主键(Primary Key)唯一标识一行数据不能重复,不能为 NULL一个表只能有一个

  • 索引(Index)加速查询用的“目录”可以重复,可以为 NULL一个表可以有多个


🔍 类比理解

概念类比图书馆
主键书的编号(唯一,不能重复)
索引书的目录卡片(帮你快速找到某类书)

✅ 如何给频繁读取的字段加索引?

1. 确认字段确实频繁出现在:
  • WHERE 条件

  • JOIN 条件

  • ORDER BY

  • GROUP BY

2. 加索引语法(以 MySQL 为例):
-- 单列索引
CREATE INDEX idx_user_email ON users(email);

-- 联合索引(多列组合)
CREATE INDEX idx_user_status_created ON users(status, created_at);

-- 唯一索引(字段值必须唯一)
CREATE UNIQUE INDEX idx_user_username ON users(username);
3. 注意事项(⚠️ 别乱加):
问题说明
写操作变慢每次 INSERT/UPDATE/DELETE 都要更新索引
占用磁盘空间索引是额外的数据结构
选择性低的字段别加索引如性别(男/女),加索引效果差
前缀索引(长字符串)VARCHAR(255),可只索引前 20 个字符:
CREATE INDEX idx_email_prefix ON users(email(20));

✅ 小结口诀

主键是“身份证”,索引是“目录卡”;读多用索引,写多慎加索引。

如果你有具体表结构或查询语句,我可以帮你判断哪些字段值得加索引。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值