当前位置: 首页 > news >正文

9索引与视图

MySQL 第6章 索引与视图(教学博客|扩充版)

适合初学者 + 包含工作高频知识点

本章核心:索引加速查询、视图简化开发+提高安全,是MySQL最常用、面试/工作必问的两大核心对象。


一、索引(Index)—— 数据库的“目录”

1.1 索引是什么(通俗讲)

索引就是数据表的目录,像书的目录一样:

  • 没有索引:逐行扫描(慢,数据量大卡死)
  • 有索引:直接定位(快,秒查)

一句话:索引=加速查询

1.2 索引分类(工作必懂5种)

  1. 普通索引(INDEX/KEY):最常用,仅加速
  2. 唯一索引(UNIQUE):值不能重复
  3. 主键索引(PRIMARY KEY):唯一+非空+自动索引
  4. 全文索引(FULLTEXT):大文本模糊搜索(文章、内容)
  5. 空间索引(SPATIAL):地理坐标(经纬度)

1.3 单列索引 vs 复合索引(工作高频)

  • 单列索引:一个字段建索引
  • 复合索引:多个字段一起建索引

复合索引规则(面试必考):最左匹配原则

复合索引(a,b,c)
查询条件必须包含最左边a,索引才会生效。

1.4 索引优缺点(工作必背)

优点:查询超快
缺点:

  • 占用磁盘空间
  • 增删改(INSERT/UPDATE/DELETE)变慢
  • 索引越多,写越慢

工作建议:

  • 查询频繁的字段才建索引
  • 不要乱建、不要全建(索引泛滥=数据库变慢)

二、索引的创建、查看、删除(上课+工作直接用)

2.1 创建索引(3种方式)

方式1:建表时直接创建(最常用)

CREATETABLEemp(empnoINTPRIMARYKEY,-- 主键索引enameVARCHAR(20)UNIQUE,-- 唯一索引jobVARCHAR(20),INDEXidx_job(job)-- 普通索引);

方式2:已有表用 CREATE INDEX

-- 普通索引CREATEINDEXidx_enameONemp(ename);-- 唯一索引CREATEUNIQUEINDEXidx_deptnoONemp(deptno);-- 复合索引CREATEINDEXidx_dept_salONemp(deptno,sal);

方式3:ALTER TABLE 添加索引

ALTERTABLEempADDINDEXidx_job(job);

2.2 查看索引

-- 查看所有索引SHOWINDEXFROMemp;-- 查看表结构(含索引)SHOWCREATETABLEemp;-- 分析SQL是否走索引(工作神器)EXPLAINSELECT*FROMempWHEREename='张三';

工作提示:

  • EXPLAIN是调优神器,看key字段:有值=走索引,NULL=没走

2.3 删除索引

-- 方式1DROPINDEXidx_jobONemp;-- 方式2ALTERTABLEempDROPINDEXidx_job;

三、视图(View)—— 虚拟表、安全又省事

3.1 视图是什么(通俗讲)

视图=虚拟表,不存真实数据,只存查询语句。

  • 数据来自真实表(基本表)
  • 视图只能读/改真实表
  • 删视图,真实表没事

3.2 视图三大好处(工作天天用)

  1. 简化复杂查询:多表关联一次写好,以后直接查视图
  2. 安全控制:给用户只看指定字段(隐藏手机号、密码)
  3. 解耦:表结构变了,视图不改,程序不用改

3.3 创建视图(单表/多表)

单表视图
CREATEVIEWview_empASSELECTempno,ename,jobFROMemp;
多表视图(工作最常用:员工+部门)
CREATEVIEWview_emp_deptASSELECTe.empno,e.ename,d.dnameFROMemp eJOINdept dONe.deptno=d.deptno;

3.4 查看视图

DESCview_emp;SHOWCREATEVIEWview_emp;

3.5 修改视图

CREATEORREPLACEVIEWview_empASSELECTempno,ename,job,salFROMemp;

3.6 删除视图

DROPVIEWview_emp;

3.7 通过视图操作数据(工作常用)

视图本质是操作真实表

-- 插入INSERTINTOview_emp(empno,ename)VALUES(1001,'小明');-- 修改UPDATEview_empSETename='小红'WHEREempno=1001;-- 删除DELETEFROMview_empWHEREempno=1001;

注意:
视图不能包含:

  • 聚合函数、GROUP BY、DISTINCT、JOIN(部分)
    → 这类视图不能增删改,只能查

四、工作高频总结(面试/开发必考)

索引工作经验

  1. 主键一定建索引(自动)
  2. 查询条件、WHERE、JOIN、ORDER BY 字段优先建索引
  3. 复合索引遵守最左匹配
  4. 不要在性别、状态这种低基数字段建索引(没用)
  5. 索引不是越多越好,增删改会变慢

视图工作经验

  1. 视图用于权限隔离、简化报表
  2. 视图不存数据,真实表变,视图自动变
  3. 复杂多表查询封装成视图,开发效率翻倍
  4. 视图不能替代表,不能建索引(MySQL限制)

五、上课可直接运行 SQL(索引+视图完整版)

-- 1. 创建部门表CREATETABLEdept(deptnoINTPRIMARYKEY,dnameVARCHAR(20));INSERTINTOdeptVALUES(10,'总裁办'),(20,'研究院');-- 2. 创建员工表(带索引)CREATETABLEemp(empnoINTPRIMARYKEY,enameVARCHAR(20)UNIQUE,jobVARCHAR(20),salDECIMAL(7,2),deptnoINT,INDEXidx_sal(sal),INDEXidx_deptno_sal(deptno,sal));INSERTINTOempVALUES(9901,'张三','经理',5000,10),(9902,'李四','开发',4000,20);-- 3. 查看索引SHOWINDEXFROMemp;-- 4. 创建视图(员工+部门)CREATEVIEWview_emp_deptASSELECTe.empno,e.ename,d.dnameFROMemp eJOINdept dONe.deptno=d.deptno;-- 5. 查询视图SELECT*FROMview_emp_dept;

本章一句话总结

  • 索引=加速查询、慢写
  • 视图=虚拟表、简化+安全
http://www.jsqmd.com/news/856518/

相关文章:

  • Verilog时序逻辑设计:从D触发器到状态机的实战指南
  • 深入Linux内存管理:从虚拟内存到OOM Killer的完整解析
  • 如何快速提升麻将水平:Akagi智能助手的完整指南
  • 干耳怎么掏耳朵?油耳用什么掏耳朵比较好?适合油耳朵清理的工具
  • DownKyi深度解析:解锁B站视频管理的全新工作流
  • Pro vs Mega vs Business订阅全解析,深度解读并发生成、私有模型与商用授权红线
  • [qemu+kvm]: smmu stage 2 建立流程
  • 如何高效管理Windows右键菜单:ContextMenuManager专业配置指南
  • 大模型选型生死线:Perplexity指标必须在24小时内完成这6项交叉验证,否则准确率偏差超±37%
  • 国产赛车硬刚欧美强队?Gensors DAM 应力应变数据采集系统讲透造车真相
  • 基于智能体的企业级自主决策与业务运营平台解决方案:AI智能管理驾驶舱、智能管理驾驶舱的四大功能定位、总体方案蓝图、总体规划方案
  • 硅光芯片设计避坑指南:行波MZM调制器仿真中速度失配与损耗的权衡实战
  • 2026年4月贵州评价高的出门纱租赁门店推荐,礼服租赁/男士西服定制/秀禾服租/成人礼礼服租赁,出门纱租赁展厅测评 - 品牌推荐师
  • 马氏体钢1700MS激光焊接热-冶金-力学耦合数值模拟方法【附代码】
  • 从‘黑盒’测试到电路设计:互易定理在排查传感器信号异常时的实战应用
  • 贴片机如何提升电子制造行业的生产效率与质量
  • Sora 2原生导入Blender 4.2:3步实现动态提示词驱动骨骼绑定与物理模拟(附实测FBX+USDZ双通道转换参数表)
  • 金融数据宝藏:期货五档Tick与期权高频数据详解
  • 芜湖装修公司推荐哪家
  • 别再只用SE和CBAM了!手把手教你将轻量级ELA注意力模块集成到ResNet/MobileNet中
  • [特殊字符] 告别类名地狱!Tailwind CSS 语义化转换神器来了
  • SystemVerilog中logic数据类型:编译期捕获多驱动错误的核心优势
  • 仅限首批500名开发者:Perplexity图谱查询性能压测报告(含17.3万节点实测TPS基准数据)
  • 【2026 最新】Kali Linux 零基础教程|超详细!下载 + 安装 + 使用全搞定✅
  • CANoe Panel面板实战:3个真实车载测试场景教你玩转ComboBox和TextBox
  • 2026年5月降AI率工具实测,知网AI率36%降到3%的方法
  • 【独家首发】Perplexity未公开的验证日志埋点规范(含47个关键trace字段定义),首批获准接入团队已落地风控提效41%
  • 优质小区标牌设计怎么选?靠谱专业厂家认准合肥原野标识,园区标牌/校园标牌/文化设计/标识制作,标牌设计团队怎么选择 - 品牌推荐师
  • 光纤弯曲损耗原理、测试与工程规避实战指南
  • 深聊专业交通事故律师,哪家性价比高且口碑 - 工业品牌热点