索引视图

Posted Jin同学

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了索引视图相关的知识,希望对你有一定的参考价值。

  索引                          

索引类似于字典和课本目录,是为了加快对数据的搜索速度而设立的,

有自己专门的存储空间,与表独立存放

索引的创建分为自动创建和手动创建

在创建主键跟唯一的时候,索引会自动创建

  手动创建     

 1 -- 为EMP表的薪资列添加索引
 2 CREATE INDEX INDEX_SAL ON EMP(SAL DESC);
 3 
 4 /*
 5     在用户撤销索引之前不会用到该索引的名字,但是索引在用户查询时会自动 
 6     起作用
 7 */
 8 
 9 -- 为多列创建索引
10 -- 只有在同时查询SAL和NAME的时候,这个索引才会起作用
11 CREATE INDEX INDEX_SAL_NAME ON EMP(SAL, NAME);
12 
13 -- 删除索引
14 DROP INDEX INDEX_SAL;

索引的缺点

  1. 索引是需要单独存放的,占用空间

  2.给某列添加索引后,该列的查询虽然变得更加快了,但是增、删、改会变慢,因为添加索引后,每个数据会有一个相应的位置,如果一旦往这一列里面某个位置添加了数据,那么后面的所有数据的位置都要进行改变,删除,修改亦然。

  视图                   

视图是为了给不同的人呈现不同的数据

1 -- 创建视图
2 CREATE VIEW VI_EMP AS SELECT EMPNO, ENAME JOB, MGR FROM EMP; -- 这里只是存放了视图的定义,也就是放的是这个查询语句,在这条sql语句运行的时候动态的去检索数据的查询语句,并不是存放在视图里对应的数据
3 
4 -- 查看视图
5 SELECT * FROM VI_EMP;
6 
7 -- 向视图中插入一条数据
8 INSERT INTO VI_EMP VILUES(50IT, SHANGHAI);

删除视图

1 DROP VIEW VI_EMP;

视图就是一个虚拟的表,视图中的数据是从事实存在的基本表中来的,当对视图进行更改时,基本表中的数据也会相应的进行更改,那么,有的时候视图只是为了给别人查看到相关的信息,并不希望查看者去更改我的表,那么可以将视图设置为只读模式

 1 -- 只读
 2 -- OR REPLACE   替换掉原来的VI_EMP视图
 3 CREATE OR REPLACE VIEW VI_EMP
 4 AS
 5 SELECT * FROM EMP
 6 WITH READ ONLY;   -- 设置为只读
 7 
 8 
 9 
10 -- 查看数据库所有的视图
11 SELECT VIEW_NAME FROM USER_VIEWS;

 

以上是关于索引视图的主要内容,如果未能解决你的问题,请参考以下文章

如何从片段内的列表视图打开链接网址?

如何使列表视图出现在片段中?

如何从活动中更改片段中视图的可见性

solr分布式索引实战分片配置读取:工具类configUtil.java,读取配置代码片段,配置实例

java.lang.IllegalStateException:键 f0 的片段不再存在:索引 1

片段中的网格视图