MySQL视图,索引,数据备份与恢复

本文详细介绍了MySQL数据库中的视图、索引和数据备份与恢复。视图作为数据的虚拟表,提供了数据安全性、简化查询和数据过滤的功能,但可能带来性能开销。索引则能显著提升查询速度,特别是对于大数据量的表,通过唯一索引、主键索引、组合索引和全文索引等方式优化数据访问。同时,文章还讨论了何时使用索引以及索引的优缺点。在数据库备份和恢复方面,提到了不同方法的效率对比,如mysqldump和Navicat工具的使用。
摘要由CSDN通过智能技术生成

目录

一.视图

1.1什么是视图?

1.2视图的定义

1.4什么情况下使用视图?

1.5视图的语法

1.6视图与数据表的区别

1.7视图优缺点

优点:

缺点:

二.索引

2.1什么是索引?

2.2为什么要使用索引

2.2 索引原理

2.3索引的优缺点

优点:

缺点:

2.4何时不使用索引

2.5.索引何时失效

2.6.索引分类

2.6.1.普通索引

2.6.2.唯一索引

2.6.3.主键索引

 2.6.4.组合索引

 2.6.5.全文索引

全文索引的优点:

全文索引缺点:

   三.数据库备份和恢复


一.视图

1.1什么是视图?

视图是在计算机科学和数据库管理中使用的术语,用于表示对数据的特定呈现方式或逻辑结构。视图可以看作是从一个或多个表中选择和组织数据的虚拟表。它提供了一种方便的方式来访问和操作数据库中的数据,同时隐藏了底层的数据结构和复杂的查询逻辑。

视图可以根据应用程序的需求来定义,可以包含特定的列、行、过滤条件和排序规则。它可以用于简化复杂的查询操作,提供更直观和易于理解的数据呈现方式,同时可以保护敏感数据并限制用户访问的权限。

视图在数据库管理系统中有多种用途,例如:

1. 简化复杂查询:通过定义视图,可以将复杂的查询逻辑封装到一个简单的接口中,使用户能够更轻松地执行查询操作。

2. 数据安全性:视图可以隐藏底层表中的敏感数据,并限制用户对数据的访问权限。通过授予用户对视图的访问权限,可以确保只有经过授权的用户能够访问受限的数据。

3. 数据完整性:视图可以用于实现数据的完整性约束。通过定义视图,并在其中添加必要的约束条件,可以确保数据满足特定的业务规则和约束,从而提高数据的质量和一致性。

总而言之,视图是一种对数据库中数据的抽象和逻辑组织方式,它提供了一种简化数据访问和操作的方式,同时增强了数据的安全性和完整性。

1.2视图的定义

视图就是从一个或多个表中,导出来的表,是一个虚拟存在的表。视图就像一个窗口(数据展示的窗口),通过这个窗口,可以看到系统专门提供的数据(也可以查看到数据表的全部数据),使用视图就可以不用看到数据表中的所有数据,而是只想得到所需的数据。

在数据库中,只存放了视图的定义,并没有存放视图的数据,数据还是存储在原来的表里,视图的数据是依赖原来表中的数据的,所以原来的表的数据发生了改变,那么显示的视图的数据也会跟着改变,例如向数据表中插入数据,那么在查看视图的时候,会发现视图中也被插入了同样的数据。

视图在外观上和表很相似,但是它不需要实际上的物理存储,视图实际上是由预定义的查询形式的表所组成的。

视图可以包含表的全部或者部分记录,也可以由一个表或者多个表来创建,当我们创建一个视图的时候,实际上是在数据库里执行了SELECT语句,SELECT语句包含了字段名称、函数、运算符,来给用户显示数据。

在数据库中,视图的使用方式与表的使用方式一致,我们可以像操作表一样去操作视图,或者去获取数据。

一般来说,我们只是利用视图来查询数据,不会通过视图来操作数据。

1.3使用视图的理由是什么?


1.安全性。一般是这样做的:创建一个视图,定义好该视图所操作的数据。之后将用户权限与视图绑定。这样的方式是使用到了一个特性:grant语句可以针对视图进行授予权限。

2.查询性能提高。

3.有灵活性的功能需求后,需要改动表的结构而导致工作量比较大。那么可以使用虚拟表的形式达到少修改的效果。

这是在实际开发中比较有用的


例子:假如因为某种需要,a表与b表需要进行合并起来组成一个新的表c。最后a表与b表都不会存在了。而由于原来程序中编

写sql分别是基于a表与b表查询的,这就意味着需要重新编写大量的sql(改成向c表去操作数据)。而通过视图就可以做到不修

改。定义两个视图名字还是原来的表名a和b。a、b视图完成从c表中取出内容。

说明:使用这样的解决方式,基于对视图的细节了解越详细越好。因为使用视图还是与使用表的语法上没区别。比如视图名a
,那么查询还是"select * from a"。

4.复杂的查询需求。可以进行问题分解,然后将创建多个视图获取数据。将视图联合起来就能得到需要的结果了。

视图的工作机制:当调用视图的时候,才会执行视图中的sql,进行取数据操作。视图的内容没有存储,而是在视图被引用的时候才派生出数据。这样不会占用空间,由于是即时引用,视图的内容总是与真实表的内容是一致的。

视图这样设计有什么好处?节省空间,内容是总是一致的话,那么我们不需要维护视图的内容,维护好真实表的内容,就可以保证视图的完整性了。

1.4什么情况下使用视图?

视图(view)是在数据库中用于呈现数据的一种方式。以下是一些情况下使用视图的例子:

  1. 数据隐藏:视图可以用于隐藏敏感或保密的数据。通过创建只包含特定列或特定行的视图,可以限制用户访问敏感信息。

  2. 数据转换:视图可以用于将数据进行重新组织或转换。例如,可以创建一个视图,将多个关联表中的数据合并为一个更容易理解的视图。

  3. 数据过滤:视图可以用于过滤数据,以便只显示满足特定条件的行。这对于在大型数据库中查找特定数据非常有用。

  4. 简化复杂的查询:通过创建一个包含复杂逻辑的视图,可以简化复杂查询的编写。这可以提高代码的可读性和维护性。

  5. 数据聚合:视图可以用于从多个表中聚合和计算数据。这对于生成报表和统计数据非常有用。

注意:视图只是数据库中的一个逻辑概念,并不实际存储数据。它只是在查询时按照定义的方式呈现已有的数据。

1.5视图的语法

可以使用 CREATE VIEW 语句来创建视图。语法格式如下:


CREATE VIEW <视图名> AS <SELECT语句>

语法说明如下:

<视图名>`:指定视图的名称。该名称在数据库中必须是唯一的,不能与其他表或视图同名。
<SELECT语句>`:指定创建视图的 SELECT 语句,可用于查询多个基础表或源视图。

对于创建视图中的 SELECT 语句的指定存在以下限制:

用户除了拥有 CREATE VIEW 权限外,还具有操作中涉及的基础表和其他视图的相关权限。
SELECT 语句不能引用系统或用户变量。
SELECT 语句不能包含 FROM 子句中的子查询。
SELECT 语句不能引用预处理语句参数。
 

1.6视图与数据表的区别

视图(View)和数据表(Table)是数据库中两个不同的概念,它们有一些明显的区别:

1. 存储方式:数据表是物理存储在数据库中的实体,而视图只是一个逻辑查询结果的虚拟表,并不真正存储数据。

</

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值