MySQL数据库————视图和索引

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: MySQL数据库————视图和索引

前言


前面几节学习的是MySQL基础的操作语言,本节将要学习MySQL中比较重要的一节,视图和索引.


一、视图


视图的作用:

视图相当于是给查询语句起别名,方便查询。

视图关键字:view;


1.视图的创建


①.创建视图的基本格式

create view <视图名> as <查询语句>; -- 视图的本质就是用<视图名>来代替<查询语句>,相当于给查询语句起别名.


②.视图的创建举例

如:对以下查询语句创建视图

select * from class; create view v_c as select * from class; -- 创建了一个视图,名字叫做V_C,用于代替查询语句“select * from class”


2.视图的使用


①.视图使用的基本格式:

select <属性名> from<视图名>;

如:select * from v_c; -- 查询视图中所有的属性;


②.试图代替复杂的语句

我们在查询语句的时候会发现,如果我们查询的属性过多,如果要多次查询,那么每次都需要写很长的代码,用视图代替,就可以极大的减少代码量。

例如:

select S.s_name 学生姓名,C.c_name 班级名称 ,T.t_name 教师姓名 from student S left join class C on S.s_cid=C.c_id left join teacher T on C.c_tid=T.t_id;

可以用视图代替:

create view v_strname as select S.s_name 学生姓名,C.c_name 班级名称 ,T.t_name 教师姓名 from student S left join class C on S.s_cid=C.c_id left join teacher T on C.c_tid=T.t_id

查询此视图:

select * from;


3.视图的修改


修改视图的基本格式:

alter view<视图名> as <查询语句>;

–让视图名代替另一个查询语句;


4.视图的删除


删除视图的基本格式:

drop view <视图名>;


二.索引


1.普通索引


①.创建普通索引

创建普通索引的基本格式:

create index 索引名 on 表名<字段1,字段2·······>

例如:


create index IND_SAGE on student(s_age);
-- 对student数据表的s_age创建一个普通索引,索引名为IND_SAGE;
select s_age from student;
-- 对于查询属性,创建一个索引,会大大的提高查询的效率,数据量越多越明显;


②.以修改表的方式添加索引

索引的基本格式:

alter table <表名> add index <索引名(属性)>;

例如:

alter table student add index S_ID(s_id); -- 以修改表的方式为student表的s_id属性添加索引;


③.查看表中的所有索引

基本格式:show index from <表名>;

例如:show index from student; -- 查询student数据表中的索引

如果我们没有建立索引,那么查询的结果是不是就没有索引喃,其实依然可能会有索引,因为如果建立了主键和外键,则系统会自动建立主键索引。

例如:


f3f3f0ae94f96aafa37b2f6704b59377_4819853ecd8d4418b3e2bcb838af78d8.png


⑤.删除索引

基本格式:

drop index <索引名> on <表名>;

如:drop index IND_SEX on student;


2.唯一索引


唯一索引关键字:unique index;

对添加了唯一索引的字段进行查询,查询效率会提高。

唯一索引和唯一约束有关,给某属性添加唯一索引后,不允许属性的值重复;


①.创建唯一约束

基本格式:create unique index <索引名> on <表名(属性名)>;

例如:

create unique index S_ID on student(s_id);


②.以修改表的形式添加唯一索引

基本格式:alter table <表名> add unique(属性);

例如:

alter table student add unique(s_id);-- 给student数据表中的s_id属性添加一个唯一索引;


3.主键索引/外键索引


前面我们提到了主键索引和外键索引在主键被建立或者外键被建立的时候就会自动建立主键索引或者外键索引;

由于主键和外键索引会自动建立,所以不需要我们去人为实现,只需要建立外键和主键即可。

前面已经讲解过主键和外键的建立,这里不做过多的介绍。


4.全文索引


全文索引的关键字:fulltext index

对添加了全文索引的字符串或者文本类型的数据查询的时候,查询效率会加快。


①.创建表的时候创建

基本格式:create fulltext index <索引名> on <表名(属性名)>;


②.修改表的方式添加全文索引

基本格式:alter table <表名> add fulltext index fullind_<索引名>(属性名);

全文索引相对而言用的比较少,其只限于对字符串和文本类型数据添加;


5.空间索引


空间索引是对空间数据类型(点,线,面,立体图形)建立的索引,由于空间索引应用不广泛,一般不会使用,所以不做详细讲解。


6.索引的优缺点


①.优点:使用索引可以大大提高查询的效率;

②.缺点:定义了索引的字段与普通字段相比,索引会占用额外的磁盘空间,由于存储的数据结构有差异,对数据进行增加,删除,修改等操作的时候,建立的索引的字段就需要动态维护,所以增加了DBMS的工作负担,并且降低了数据库的可维护性。

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
0
0
0
12
分享
相关文章
Mysql的索引
MYSQL索引主要有 : 单列索引 , 组合索引和空间索引 , 用的比较多的就是单列索引和组合索引 , 空间索引我这边没有用到过 单列索引 : 在MYSQL数据库表的某一列上面创建的索引叫单列索引 , 单列索引又分为 ● 普通索引:MySQL中基本索引类型,没有什么限制,允许在定义索引的列中插入重复值和空值,纯粹为了查询数据更快一点。 ● 唯一索引:索引列中的值必须是唯一的,但是允许为空值 ● 主键索引:是一种特殊的唯一索引,不允许有空值 ● 全文索引: 只有在MyISAM引擎、InnoDB(5.6以后)上才能使⽤用,而且只能在CHAR,VARCHAR,TEXT类型字段上使⽤用全⽂文索引。
对比MySQL全文索引与常规索引的互异性
现在,你或许明白了这两种索引的差异,但任何技术决策都不应仅仅基于理论之上。你可以创建你的数据库实验环境,尝试不同类型的索引,看看它们如何影响性能,感受它们真实的力量。只有这样,你才能熟悉它们,掌握什么时候使用全文索引,什么时候使用常规索引,以适应复杂多变的业务需求。
69 12
数据库主键与索引详解
本文介绍了主键与索引的核心特性及其区别。主键具有唯一标识、数量限制、存储类型和自动排序等特点,用于确保数据完整性和提升查询效率;而索引通过特殊数据结构(如B+树、哈希)优化查询速度,适用于不同场景。文章分析了主键与索引的优劣、适用场景及工作原理,并对比两者在唯一性、数量限制、功能定位等方面的差异,为数据库设计提供指导。
MySQL选错索引了怎么办?
本文探讨了MySQL中因索引选择不当导致查询性能下降的问题。通过创建包含10万行数据的表并插入数据,分析了一条简单SQL语句在不同场景下的执行情况。实验表明,当数据频繁更新时,MySQL可能因统计信息不准确而选错索引,导致全表扫描。文章深入解析了优化器判断扫描行数的机制,指出基数统计误差是主要原因,并提供了通过`analyze table`重新统计索引信息的解决方法。
MySQL索引学习笔记
本文深入探讨了MySQL数据库中慢查询分析的关键概念和技术手段。
454 80
MySQL底层概述—8.JOIN排序索引优化
本文主要介绍了MySQL中几种关键的优化技术和概念,包括Join算法原理、IN和EXISTS函数的使用场景、索引排序与额外排序(Using filesort)的区别及优化方法、以及单表和多表查询的索引优化策略。
235 22
MySQL底层概述—8.JOIN排序索引优化
数据库索引采用B+树不采用B树的原因?
● B+树更便于遍历:由于B+树的数据都存储在叶子结点中,分支结点均为索引,方便扫库,只需要扫一遍叶子结点即可,但是B树因为其分支结点同样存储着数据,我们要找到具体的数据,需要进行一次中序遍历按序来扫,所以B+树更加适合在区间查询的情况,所以通常B+树用于数据库索引。 ● B+树的磁盘读写代价更低:B+树在内部节点上不包含数据信息,因此在内存页中能够存放更多的key。 数据存放的更加紧密,具有更好的空间局部性。因此访问叶子节点上关联的数据也具有更好的缓存命中率。 ● B+树的查询效率更加稳定:由于非终结点并不是最终指向文件内容的结点,而只是叶子结点中关键字的索引。所以任何关键字的查找必须走一条
MySQL原理简介—9.MySQL索引原理
本文详细介绍了MySQL索引的设计与使用原则,涵盖磁盘数据页的存储结构、页分裂机制、主键索引设计及查询过程、聚簇索引和二级索引的原理、B+树索引的维护、联合索引的使用规则、SQL排序和分组时如何利用索引、回表查询对性能的影响以及索引覆盖的概念。此外还讨论了索引设计的案例,包括如何处理where筛选和order by排序之间的冲突、低基数字段的处理方式、范围查询字段的位置安排,以及通过辅助索引来优化特定查询场景。总结了设计索引的原则,如尽量包含where、order by、group by中的字段,选择离散度高的字段作为索引,限制索引数量,并针对频繁查询的低基数字段进行特殊处理等。
220 18
MySQL原理简介—9.MySQL索引原理
MySQL索引有哪些类型?
● 普通索引:最基本的索引,没有任何限制。 ● 唯一索引:索引列的值必须唯一,但可以有空值。可以创建组合索引,则列值的组合必须唯一。 ● 主键索引:是特殊的唯一索引,不可以有空值,且表中只存在一个该值。 ● 组合索引:多列值组成一个索引,用于组合搜索,效率高于索引合并。 ● 全文索引:对文本的内容进行分词,进行搜索。

推荐镜像

更多
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问