資料庫優化前基礎準備

2021-08-31 02:46:34 字數 2012 閱讀 8624

聚集、非聚集索引、唯一索引、復合索引、系統自建索引

2008-11-25 09:59

聚集與非聚集索引

摘自:

索引是在資料庫表或者檢視上建立的物件,目的是為了加快對錶或檢視的查詢的速度

按照儲存方式分為:聚集與非聚集索引

按照維護與管理索引角度分為:唯一索引、復合索引和系統自動建立的索引

索引的結構是由:根節點--->非葉節點--->非葉節點--->葉節點

1、聚集索引(只能建立乙個):表中儲存的資料按照索引的順序儲存,檢索效率比普通索引高,但對資料新增/修改/刪除的影響比較大

特點:

(1) 乙個表可以最多可以建立249個索引

(2) 先建聚集索引才能建立非聚集索引

(3) 非聚集索引資料與索引不同序

(4) 資料與索引在不同位置

(5) 索引在葉節點上儲存,在葉節點上有乙個"指標"直接指向要查詢的資料區域

(6) 資料不會根據索引鍵的順序重新排列資料

建立聚集索引的語法:

create clustered index idximpid on emp(empid)

2、非聚集索引(可以建立多個):不影響表中的資料儲存順序,檢索效率比聚集索引低,對資料新增/修改/刪除的影響很少

特點:

(1) 無索引,資料無序

(2) 有索引,資料與索引同序

(3) 資料會根據索引鍵的順序重新排列資料

(4) 乙個表只能有乙個索引

(5) 葉節點的指標指向的資料也在同一位置儲存

語法:

create nonclustered index idxempid on emp(empid)

3、惟一索引:惟一索引可以確保索引列不包含重複的值.

可以用多個列,但是索引可以確保索引列中每個值組合都是唯一的

姓   名

李   二

張   三

王   五

語法: create unique index idxempid on emp(姓,名)

4、復合索引:如果在兩上以上的列上建立乙個索引,則稱為復合索引。

那麼,不可能有兩行的姓和名是重複的

語法:

create index indxfullname on addressbook(firstname,lastname)

5、系統自建的索引:在使用t_sql語句建立表的時候使用primary key或unique約束時,會在表上自動建立乙個惟一索引

自動建立的索引是無法刪除的

語法:

create table abc

( empid int primary key,

firstname varchar(50)unique,

lastname   varchar(50)unique,

)

這樣的結果就出來了三個索引,但只有乙個聚集索引哦

6、建立索引的方法:

1、企業管理器中

(1)右擊某個表,所有任務---管理索引,開啟管理索引,單擊「新建」就可以建立索引

(2)在設計表中進行設計表,管理索引/鍵

(3)在關係圖中,新增表後右擊關係圖中的某個表,就有「索引/鍵」

(4)通過嚮導,資料庫---建立索引嚮導

(5)通過t-sql語句

2、能過「索引優化嚮導」來優化索引的嚮導,通過它可以決定選擇哪些列做為索引列

實驗的流程:

1、先建立乙個表,然後檢視一下他的占用資源情況及select * from 表

看一下排序

2、然後建立索引,在**一下占用資源的情況,及排序情況,看看聚集與非聚集的排序是

否用變化

答案是:聚集的有變化,非聚集的排序與未建立索引之前一樣

13開發前的準備 資料庫

開發 也是需要挺多方面的技能的,前面十幾篇文章提到了一部分技能,但都是作為單一的部分得來講,接下來這四篇文章會講怎樣把學的零散的知識串聯起來。首先是資料庫,無論是做 軟體還是遊戲,大多是要用到資料庫的,也就是做一些資料的永久性儲存,資料庫可以很方便地按照自己的需要儲存資料。課程使用的是資料庫sql2...

資料庫準備

1.2.匯入資料庫指令碼 1 執行d trinity source trinitycore sql create create mysql.sql。2 選擇auth資料庫,執行d trinity source trinitycore sql base auth database.sql指令碼。3 選...

資料庫優化 資料庫設計優化

一 索引優化 1.首先索引不是越多越好,要視情況而定。因為索引會降低insert和update的效率 insert和update有時可能會重建索引。2.乙個表的索參數量最好不要超過6個,擇優而建。3.專案上線後,根據使用者的查詢條件字段稍微調整資料庫中的字段索引。二 分表 1.縱切 根據表字段來且分...