MYSQL_视图与索引

视图(view):

表的一部分投影,也是数据库里的一个对象。(表的虚拟部分)

如何创建视图?

格式:
    create view viewName
    as subQuery
--创建一个表emp的deptno为10的视图
create view view_emp_deptno_10
as 
select *
from emp
where deptno=10;

作用:因为视图中含有某表中的部分数据,不在视图的字段有隐藏效果,相对来说,数据安全

视图可以像一样进行增、删、改、查,但会对表有影响;反之,表操作时,可能对视图有所影响(只有操作视图中相关的字段时,才会有所影响)

with check option:对视图的一种检查约束
创建视图有此选项时,只能操作可见数据,位于子查询之后

视图的分类:

简单视图:subQuery是一个普通查询语句
复杂视图:subQuery是一个带分组函数,或关联查询的语句
注:只能查询,不能进行DML操作

索引(Index):

为了提高查询速度,相当于书的目录,索引也是数据库的对象,占空间。每张表的每个字段都可以设置相应的索引。

优点:提高查询效率
缺点:占空间,每次DML操作时,数据库都要重新维护索引,降低效率
--对emp表中的empno字段创建索引
create index index_emp_empno
on emp(empno);

总体来说,表中有索引可以提高效率,但索引不是越多越好,当表中的数据少时,不需要索引;当某个字段的值比较少时,也不需要索引;
只有数据量较大时或字段值繁杂时,可以使用索引

猜你喜欢

转载自blog.csdn.net/yc_hen/article/details/82731890