[1].漫談資料庫索引
在sql server2008中建立測試資料庫test,接著建立資料庫表並插入資料,sql**如下:
use執行完上述sql**以後我們會發現在test資料庫中多出了一張emp_pay表,資料庫表的內容如下圖所示:test
ifexists (select
*from
information_schema.tables
where table_name =
'emp_pay')
drop
table
emp_pay
gouse
test
ifexists (select name from
sys.indexes
where name =
'employeeid_ind')
drop
index
emp_pay.employeeid_ind
gouse
test
gocreate
table
emp_pay
( employeeid
intnot
null
, base_pay
money
notnull
, commission
decimal(2, 2) not
null
)insert
emp_pay
values (1, 500, .10
)insert
emp_pay
values (2, 1000, .05
)insert
emp_pay
values (6, 800, .07
)insert
emp_pay
values (5, 1500, .03
)insert
emp_pay
values (9, 750, .06)
從上圖我們可以看出資料庫中儲存的資料排列順序與我們插入的先後順序一致。接下來我們查詢employeeid=5的字段,執行如下sql**:
use在sql server management studio中我們點選「顯示估計的查詢計畫」,會出現如下圖所示的查詢計畫圖:test
select
*from emp_pay where employeeid=
5
其中表掃瞄的內容為:
接下來我們為上述表新增聚集唯一索引,**如下:
set nocount off在執行完上述建立索引的**以後,我們再次查詢emp_pay的資料內容,如下圖所示:create
unique
clustered
index
employeeid_ind
onemp_pay (employeeid)
go
從上圖我們可以發現資料內容已經按照employeeid進行了排序。
我們繼續執行前面關於employeeid=5的查詢,點選「顯示估計的執行計畫」,出現如下圖所示內容:
聚集索引查詢的內容為:
當我們為資料庫表中的某乙個字段建立索引,並且在查詢語句中where子句中用到這樣乙個字段,那麼查詢效率會有所提高,我們上述實驗因為資料量的關係查詢效率提高不明顯。
我們上面新增的索引是唯一聚集索引,因此當插入的資料在employeeid欄位出現重複時會報錯。假如我們在建立索引之前資料字段出現重複,那麼就不能建立唯一索引。
執行如下sql語句
update emp_pay set employeeid=然後再次執行全表查詢,我們發現查詢結果如下所示:7where employeeid=
1;
只要我們更新了employeeid,那麼最後的更新結果都會按照employeeid的值進行公升序排序。這是因為我們在employeeid上建立了索引的緣故。
我們可以通過sql server management studio這個工具刪除索引,也可以通過sql語句進行索引的刪除,假設我們要求刪除在前面建立的索引employeeid_ind,那麼sql語句如下**所示:
dropindex employeeid_ind on emp_pay;
資料庫 資料庫索引
索引是儲存引擎用於快速找到記錄的一種資料結構。索引以檔案的形式儲存在磁碟中。索引可以包含乙個或多個列的值。儲存引擎查詢資料的時候,先在索引中找對應值,然後根據匹配的索引記錄找到對應的資料行。1.b tree索引 2.雜湊索引 myisam和innodb儲存引擎 只支援btree索引,也就是說預設使用...
資料庫mysql索引 資料庫 mysql索引
mysql 索引 mysql索引的建立對於mysql的高效執行是很重要的,索引可以大大提高mysql的檢索速度。打個比方,如果合理的設計且使用索引的mysql是一輛蘭博基尼的話,那麼沒有設計和使用索引的mysql就是乙個人力三輪車。索引分單列索引和組合索引。單列索引,即乙個索引只包含單個列,乙個表可...
資料庫索引
索引 索引列唯一索引 主鍵索引 聚簇索引和非聚簇索引 如何建立索引 如何刪除索引 使用索引可快速訪問資料庫表中的特定資訊。索引是對資料庫表中一列或多列的值進行排序的一種結構,例如 employee 表的姓 lname 列。如果要按姓查詢特定職員,與必須搜尋表中的所有行相比,索引會幫助您更快地獲得該資...