视图有索引吗?答:没有. 查询视图会触发索引吗?答:会

面试的时候当我问到这样的问题的时候面试者往往不给我正面回答.很讨厌.所以我在表体直接给出答案.

看其他人的回答 视图会用走索引吗.

答: 先来一通视图的定义 ,视图的作用,优缺点. 很好,不正面回答防止pass ,  这样让面试官感觉自己懂得很多.


1.什么是视图

视图是一种虚拟的表,是从数据库中一个或多个表中导出来的表。
数据库中存放了视图的定义,而并没有存放视图中的数据,这些数据存放在原来的表中。
使用视图查询数据时,数据库系统会从原来的表中取出对应的数据。

2.视图的作用
1) 使操作简便化。
2) 增加数据的安全性。
3) 提高表的逻辑独立性。

现在说正题

问:视图能用索引吗?

从几个方面来回答,

1视图不能建立索引,所以准确的说视图本身没有索引的概念.

2.视图能不能用索引不能这样说,视图是由 查询sql语句建立,或多级视图组成. 走不走索引只有表才有这个概念.所以只有表字段才能用索引.

3.用不用的起来索引 由编写的sql语句 索引的规范决定.

4.执行查询视图.可以看到会有索引被用到.但是本体是表的索引,不是视图的.

想深究的可以自己建个表 建好索引 再创建视图 看看查询的时候 执行计划怎么走 一目了然.

--测试索引生效(ora)
explain plan for  select * from test_sdf;

select * from table (dbms_xplan.display());

rollback;

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 聚集索引和非聚集索引的区别: - 聚集索引的叶子节点存储的是真实的数据行,而非聚集索引的叶子节点存储的是指向数据行的指针。 - 每张表只能有一个聚集索引,但可以有多个非聚集索引。 - 聚集索引影响到表的物理存储结构,而非聚集索引。 2. 视图是一个虚拟的表,它是基于一个或多个实际表的查询结果构建而成的。视图的作用是隐藏实际表的结构,简化用户的操作。视图的优点包括: - 简化查询语句,提高查询效率。 - 隐藏数据表的实际结构,提高数据安全性。 - 方便用户进行数据访问和管理。 视图的限制包括: - 无法对视图进行直接的插入、删除和修改操作。 - 视图的性能可能受到实际表的影响。 3. 存储过程是一段预编译的代码,它可以接收参数、执行特定的操作并返回结果。存储过程的优点包括: - 可以提高数据库的性能和安全性。 - 可以减少网络流量,提高应用程序的响应速度。 - 可以减少代码重复,提高开发效率。 调用带参数的存储过程需要使用 CALL 或 EXECUTE 命令,例如: ``` CALL procedure_name(parameter1, parameter2, ...); ``` 4. 触发器是一种特殊的存储过程,它数据库中发生特定事件时自动执行。常见的触发器种类包括: - INSERT 触发器:在插入数据时触发。 - UPDATE 触发器:在更新数据时触发。 - DELETE 触发器:在删除数据时触发触发器可以保证数据库的数据完整性和一致性,例如在插入数据时可以检查数据的有效性,或者在更新数据时可以自动更新相关的数据。 5. RDBMS 可以通过授权与回收来保证数据的安全性。授权是指授予用户对数据库或表的访问权限,回收是指撤销用户的访问权限。授权和回收可以通过 GRANT 和 REVOKE 命令实现。 6. 自主存取控制和强制存取控制是两种不同的访问控制方式。自主存取控制是指用户可以自主地控制对自己拥有的对象的访问权限,而强制存取控制是指访问权限由系统管理员控制。自主存取控制的优点是用户可以更灵活地控制访问权限,但缺点是可能存在安全漏洞;强制存取控制的优点是可以保证数据安全性,但缺点是可能限制用户的自主性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值