首頁 >資料庫 >mysql教程 >mysql視圖有索引嗎

mysql視圖有索引嗎

WBOY
WBOY原創
2022-03-02 15:32:264974瀏覽

mysql中視圖沒有索引。視圖是一張虛擬的表,並不真實的存在於資料庫中,所以也就沒有主鍵、索引,因為視圖沒有行和列,本質上就是語句,當調用視圖時系統先執行生成視圖的語句,然後在視圖的基礎上進行查詢。

mysql視圖有索引嗎

本教學操作環境:windows10系統、mysql8.0.22版本、Dell G3電腦。

mysql視圖有索引嗎

視圖沒有索引,視圖是一張虛擬表,並不真實存在在資料庫中,所以也就沒有什麼主鍵、索引,因為根本就沒有行和列,本質上就是語句,當你呼叫視圖的時候資料庫管理系統會先去找視圖中封裝的語句,先執行生成視圖的語句,再在視圖的基礎上進行查詢

視圖中不能使用索引,也不能使用觸發器(索引和觸發器後面會分析)

使用可以和普通的表一起使用,編輯一條聯結視圖和普通表的sql語句是允許的。

關於使用視圖對數據的進行更新(增刪改),因為視圖本身並沒有數據,所以這些操作都是直接作用到普通表中的,但也並非所有的視圖都可以進行更新操作,如視圖中存在分組(group by)、聯結、子查詢、並(unoin)、聚合函數(sum/count等)、計算字段、DISTINCT等都不能對視圖進行更新操作,因此我們前面的例子也是不能進行更新操作的,事實上,視圖更多的是用於資料檢索而更新,因此對於更新也沒有必要進行過多闡述。

視圖的本質

到此對於視圖的創建和使用都比較清晰了,現在準備進一步認識視圖的本質,前面我們反覆說過,視圖是一張虛擬表,是不帶任何資料的,每次查詢時只是從普通表中動態地獲取資料並組合,只不過外表看起來像一張表罷了。其原理透過下圖便一目了然:

mysql視圖有索引嗎

事實上有些時候視圖還會被用來限制使用者對普通表的查詢操作,對於這類使用者只賦予對應視圖的select操作權限,僅讓他們只能讀取特定的行或列的資料。這樣我們也就不用直接使用資料庫的權限來設定限制行列的讀取,同時也避免了權限細化的麻煩。

推薦學習:mysql影片教學

#

以上是mysql視圖有索引嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn