Oracle 基礎——索引,oracle基礎索引

來源:互聯網
上載者:User

Oracle 基礎——索引,oracle基礎索引

1.索引是做什麼的?

回答: 索引是資料庫中用來提高查詢效率。

補充: 過多的建立索引會大大降低DML語句的效率,建立索引的原則是在經常作為查詢條件的欄位上建立  

            索引,在存在大量重複資訊的欄位上不適合建立索引。

注意:(以下情況索引失效)

           1)使用<>比較時,索引無效,建議使用< or >

           2)使用前置模糊比對%時無效,用instr代替

           3)使用函數時 (例:(create index ind… on 表名(to_char(birth,’’))建立這樣的索引使用函

                 數時失效,但要注意查詢語句的大小寫)

           4)使用不匹的資料類型

           5)欄位含有NULL索引會失效,建立索引的欄位應該是NOT NULL

文法:

            -- 建立索引:

            CREATE INDEX  INDEX_ENAME ON EMP (ENAME)

 

            -- 如果在建立索引的過程中還可以對錶進行DML操作,就在命令列上加online

            CREATE INDEX INDEX_SNAME ON DB_STUDENT(SNAME) [ONLINE]

 

            -- 經常做為聯集查詢的欄位可以建立聯合索引:

            CREATE INDEX INDEX_EMP_SAL_JOB ON EMP(SAL,JOB)

 

            -- 刪除索引:

            DROP INDEX INDEX_HIREDATE

 

2.聚簇索引:

         聚簇是把關係列放在同一個地方,聚簇索引一般建立在關聯表上的,用來提高根據關聯欄位查詢的效率

步驟:

           1)先建立聚簇

           2)在建立表的同時將關聯欄位交給聚簇管理

           3)在該聚簇上建立索引

文法:

          -- 建立聚簇
          create cluster cluster_deptno(deptno number(3));

 

          -- 建立表的時候將指定欄位放在聚簇裡
          create table dept
          (
              deptno number(3) ,
              dname  varchar2(32)
          )
         cluster cluster_deptno(deptno);

         alter table dept add constraint pk_dept_deptno primary key (deptno);

         create table emp 
         (
              empno number(5) primary key,
              ename varchar2(32),
              age   number(3),
              sal number(5),
              deptno number(3) references dept(deptno)
          )

 

          -- 外鍵必須建在聚簇之前
          cluster cluster_deptno(deptno)

 

          -- 將索引建立在聚簇上(即建立聚簇索引)
          create index cindex_deptno on cluster cluster_deptno;

 

          -- 刪除聚簇

          drop cluster cluster_deptno


3.反向索引:通常建立在由序列產生欄位資訊的欄位上
                    create index INDEX_STU_SNO on DB_STUDENT (sno)  reverse;

未完待續~

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.