SQL的索引+視圖

索引可以提升查詢速度,會影響where條件查詢(where xxx=''),order by(order by

yyy)排序

索引是針對字段的,需要添加到字段上

索引在大量數據場景下效果明顯

從索引的存儲結構劃分:B Tree索引、Hash索引、fulltext全文索引、R Tree索引(了解)

從應用層次劃分:主鍵索引、唯一索引、普通索引、復合索引

從索引的鍵值(字段)類型劃分:主鍵索引、輔助索引(二級索引)

從索引數據和內容數據邏輯關系劃分:聚集索引(聚簇索引)、非聚集索引(非聚簇索

引)

主鍵索引 (PRIMARY KEY)

一個表可以沒有主鍵,但最多只能有一個主鍵,并且主鍵值不能包含NULL。

添加主鍵的時候會自動創(chuàng)建主鍵索引,主鍵索引是一種唯一性索引

根據主鍵進行where條件查詢,效率高

示例:

使用create語句創(chuàng)建: 在已有的表上創(chuàng)建索引

create unique index 索引名 on 表名(列名(長度))

create unique index index_dname on test_index(dname);

修改表結構添加索引

ALTER TABLE 表名 ADD UNIQUE 索引名( 列名 )

普通索引 (NORMAL INDEX)

普通索引的唯一任務是加快對數據的訪問速度。因此,應該只為那些最經常出現在查詢條件

(WHERE column=)或排序條件(ORDER BY column)中的數據列創(chuàng)建索引。

普通索引對數據沒有唯一、非空的強制要求,一個表可以擁有多個索引;

1) 語法格式使用create index 語句創(chuàng)建: 在已有的表上創(chuàng)建索引


修改表結構添加索引


2.2.4 刪除索引

由于索引會占用一定的磁盤空間,因此,為了避免影響數據庫的性能,應該及時刪除不再

使用的索引

1) 語法格式


2) 刪除? test_index 表中名為? dname_indx 的普通索引。


2.3 索引的優(yōu)缺點總結

索引的優(yōu)點

1. 大大的提高查詢速度

2. 可以顯著的減少查詢和排序的時間。

索引的缺點

當對表中的數據進行增加,修改,刪除的時候,索引要同時進行維護,數據量越大維護時

間越長

主鍵和索引的區(qū)別:
關鍵區(qū)別總結:

唯一性:主鍵必須唯一,索引可以重復

數量限制:每表只能有一個主鍵,但可以有多個索引

NULL值:主鍵不允許NULL,索引允許NULL

用途:主鍵用于標識記錄,索引用于優(yōu)化查詢

自動索引:創(chuàng)建主鍵時自動創(chuàng)建聚集索引,普通索引需要單獨創(chuàng)建

使用建議:

主鍵應選擇較小的數據類型,避免使用長字符串

索引不宜過多,會影響寫入性能

經常用于查詢條件的列適合創(chuàng)建索引

主鍵最好使用自增列,避免頻繁的頁分裂

第3節(jié) MySQL 視圖

3.1 什么是視圖

1. 視圖是一種虛擬表。

2. 視圖建立在已有表的基礎上, 視圖賴以建立的這些表稱為基表。

3. 向視圖提供數據內容的語句為 SELECT 語句, 可以將視圖理解為存儲起來的 SELECT 語句.

4. 視圖向用戶提供基表數據的另一種表現形式

3.2 視圖的作用

權限控制時可以使用

比如,某幾個列可以運行用戶查詢,其他列不允許,可以開通視圖 查詢特定的列, 起到權限

控制的作用

簡化復雜的多表查詢

1) 語法格式


3.4 視圖與表的區(qū)別

視圖是建立在表的基礎上,表存儲數據庫中的數據,而視圖只是做一個數據的展示

通過視圖不能改變表中數據(一般情況下視圖中的數據都是表中的列 經過計算得到的結果,

不允許更新)

刪除視圖,表不受影響,而刪除表,視圖不再起作用

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容