mysql数据库2

六.视图

1.视图的概念+为什么要使用视图?

视图(View)是一种虚拟存在的表,对于使用视图的用户来说基本上是透明的。视图并不在数据库
中实际存放数据,它的数据来自定义视图时使用的基本表,并且是在使用视图时动态生成的。
为什么使用视图?

  • 简化复杂查询把多表连接、复杂查询封装成视图,使用时直接查视图,不用重复写长 SQL。
  • 数据安全 / 权限控制只给用户开放视图,隐藏敏感字段(如密码、身份证),只暴露需要的数据。
  • 逻辑独立性基本表结构修改时,可通过修改视图保持对外接口不变,不影响上层应用。
  • 统一数据口径多人使用相同的查询逻辑,避免写错、统计不一致。

2.视图的操作

a.定义视图
定义视图建议以"_v"开头,create view视图名as select****语句;

b.查看视图
show tables; 默认会显示表和视图,但不能区分。
show full tables; 会显示表和视图的类型

c.删除视图
drop view viewname;

七.索引

1. 索引是什么?

索引是数据库表中一列或多列的值进行排序的一种数据结构 (如 B + 树)。作用:大幅提高查询速度 ,相当于书的目录。


2. 索引的优点

  1. 加快数据查询速度(最核心作用)
  2. 减少查询时扫描的数据行数
  3. 加速表与表之间的连接(JOIN)
  4. 提高分组、排序的效率

3. 索引的缺点

  1. 会占用额外的磁盘空间
  2. 增删改数据变慢(INSERT/UPDATE/DELETE 时,索引也要同步更新)
  3. 过多索引会降低数据库整体性能

4. 索引的分类(常用)

  1. **主键索引(PRIMARY KEY)**唯一标识记录,非空、唯一,一张表只能有一个。
  2. **唯一索引(UNIQUE)**列值必须唯一,允许 NULL(最多一个 NULL)。
  3. **普通索引(INDEX)**最基础索引,仅加速查询。
  4. 复合索引(联合索引) 多个列组合创建的索引,遵循最左前缀原则。
  5. **全文索引(FULLTEXT)**用于长文本模糊查询。

5. 索引操作语法


6. 索引使用原则(高频考点)

  1. 经常用于 WHERE 查询、JOIN 连接、ORDER BY 排序的字段建索引
  2. 数据量小的表不需要建索引
  3. 区分度低的字段不建索引(如性别、状态)
  4. 不要对经常修改的字段滥用索引
  5. 使用复合索引时,遵循最左前缀原则

**索引为什么选择****b+**树
可以考虑作为索引的数据结构有如下几种,下面介绍下不同数据结构的特点:
hash表
二叉树
b树
b+树
使用hash表的缺点:
1)hash存储需要将所有的数据文件添加到内存,浪费空间
2)如果是等值查询,hash很快,但实际工作中范围查找更多,而不是等值查询,所以hash就不合适了。

相关推荐
qq_401700412 小时前
Qt 实时大数据量存储:自己动手实现 TDMS 读写
数据库·qt
Leon-Ning Liu2 小时前
Oracle参数对比脚本分享:对比 SPFILE 参数与内存参数差异,支持 11g 到 19c
数据库·oracle
涛思数据(TDengine)3 小时前
TDengine TSDB 3.4.3.3 上线:流计算分层闭环、虚拟表跨层引用,查询关联一次写完
数据库·人工智能·数据分析·时序数据库·tdengine·工业
远方16093 小时前
118-五大进程LGWR DBWn CKPT SMON PMON 与存储故障-文件系统对照
大数据·数据库·sql·oracle·database
ss2733 小时前
AI时代首先数据库-PostgreSQL实战笔记 | 17 PostgreSQL SQL高级查询:窗口函数、CASE、COALESCE
数据库·笔记·postgresql
远方16093 小时前
119-Oracle CDB 下修改和重置 SYS SYSTEM密码记录
大数据·数据库·sql·oracle·database
橙光成长3 小时前
Context Mode 深度解析:用沙盒、SQLite 与钩子路由,把 AI 编码 Agent 的上下文消耗削减 98%
数据库·人工智能·sqlite
数据库小学妹3 小时前
MySQL时区问题排查:TIMESTAMP和DATETIME的区别与跨时区对账踩坑
数据库·mysql·datetime·时区·timestamp·跨时区对账
创世虚拟世界3 小时前
把 3D 虚拟世界拉到本地:vibe coding 的手感,是从看见自己那一行改动开始的
javascript·数据库·人工智能·3d·gitee·虚拟现实
俊昭喜喜里4 小时前
Springboot的Mybatis中的条件构造器
数据库·mybatis