1. 程式人生 > 實用技巧 >檢視和索引

檢視和索引

檢視

檢視是一個虛擬表,其內容由查詢定義。同真實表一樣,檢視包含一系列帶有名稱的列和行資料,但檢視並不是資料庫真實儲存的資料表。

建立檢視

使用CREATE VIEW語句來建立檢視

CREATE VIEW <檢視名> AS <SELECT 語句>
  • <檢視名>:指定檢視的名稱。該名稱在資料庫中必須是唯一的,不能與其它表或檢視重名。
  • /<SELECT 語句/>:指定建立檢視的SELECT語句,可用於查詢多個基礎表或源檢視。
CREATE VIEW view_student_info
AS SELECT * FROM tb_student_info;

檢視一經定義,就可以如同查詢資料表一樣,使用SELECT語句查詢檢視中的資料,語法和查詢基礎表的資料一樣。檢視用於查詢主要應用在以下幾個方面:

  1. 使用檢視重新格式化檢索出的資料
  2. 使用檢視簡化複雜的表連線
  3. 使用檢視過濾資料

查詢檢視

DESCRIBE 檢視名;

修改檢視資料

update view view_student set ename='張三',sal='1' where empno=7369;

刪除檢視資料

delete form view_student where empno=6379;

刪除檢視

DROP VIEW <檢視名稱>;

索引

什麼是索引

索引就是根據表中的一列或若干列按照一定順序建立的列值與記錄行之間對應的關係表,實質上是一張描述索引列的列值與原表中記錄行之間一一對應關係的有序表。

在MySql中,通常有以下兩種方式訪問資料庫表的行資料:

  • 順序訪問是在表中實行全表掃描,從頭到尾逐行遍歷,直到在無序的行資料中找到符合條件的目標資料。
  • 索引訪問是通過遍歷索引來直接訪問表中記錄行的方式。

索引的分類

索引的型別和儲存引擎有關,MYSQL中常用的索引在物理上分為:B-Tree索引,雜湊索引。

根據索引的用途,可以在邏輯上分為5類:

  • 普通索引是最基本的索引型別,唯一任務是加快對資料的訪問速度,沒有任何限制。建立普通索引時,通常使用的關鍵字是INDEX或KEY。
  • 唯一性索引是不允許索引列具有相同索引值的索引。
  • 主鍵是一種唯一性索引,即不允許值重複也不允許值為空,並且每個表只有一個主鍵。
  • 空間索引主要用於地理空間資料型別GEOMETRY。
  • 全文索引只能在VARCHARE或TEXT型別的類上建立,並且只能在MyISAM表中建立。

在實際應用中索引通常分為單列索引和組合索引。

  • 單列索引就是索引只包含原表的一個列。
  • 組合索引也稱為複合索引或多列索引,相對於單列索引來說,組合索引是將原表的多個列共同組成一個索引。

建立索引

CREATE  index <索引名> on 表名(欄位名);

檢視索引

SHOW INDEX FROM <表名> [FROM <資料庫名>]

刪除索引

DROP INDEX <索引名> on <表名>

索引底層原理

通過B Tree縮小掃描範圍,底層索引進行了排序,分割槽,索引會攜帶資料在表中的"實體地址",最終通過索引檢索到資料後,獲取關聯的實體地址,通過實體地址定位表中的資料,效率是最高的。