SQL Server資料庫 索引

2022-01-25 08:33:31 字數 3375 閱讀 7195

描述:漢語字典中的漢字按頁存放,一般都有漢語拼音目錄(索引)、偏旁部首目錄等

我們可以根據拼音或偏旁部首,快速查詢某個字詞

是sql server編排資料的內部方法。它為sql server提供一種方法來編排查詢資料

資料庫中儲存索引的資料頁;索引頁類似於漢語字(詞)典中按拼音或筆畫排序的目錄頁

通過使用索引,可以大大提高資料庫的檢索速度,改善資料庫效能

唯一索引不允許兩行具有相同的索引值

是唯一索引的特殊型別

表中各行的物理順序與鍵值的邏輯(索引)順序相同,同一張表裡只可以有乙個「聚集索引」

非聚集索引指定表的邏輯順序

][unique] :唯一索引

[clustered|nonclustered]:聚集索引或非聚集索引,同一張表裡只可以有乙個「聚集索引」

[with fillfactor=x]:填充因子(係數):指定乙個0~100之間的值,表示索引頁填充的百分比

表名和索引名稱之間,用「.」分隔

drop

index table_name.index_name

刪除表時,該錶的所有索引同時會被刪除

use

myschool

go/*

--檢測是否存在該索引(索引存放在系統表sysindexes中)--

*/if

exists (select name from

sysindexes

where name =

'ix_student_studentname')

drop

index student.ix_student_studentname --

刪除索引

go/*

--學生姓名列建立非聚集索引:填充因子為30%--

*/create

nonclustered

index

ix_student_studentname

onstudent(studentname)

with

fillfactor=30

go

/*

----指定按索引:ix_student_studentname查詢----

*/select

*from

student

with (index

=ix_student_studentname)

where studentname like'李%

'

1.加快訪問速度

2.加強行的唯一性

1.帶索引的表在資料庫中需要更多的儲存空間

2.操縱資料的命令需要更長的處理時間,因為它們需要對索引進行更新

1.頻繁搜尋的列

2.經常用作查詢選擇的列

3.經常排序、分組的列

4.經常用作連線的列(主鍵/外來鍵)

1.僅包含幾個不同值的列

2.表中僅包含幾行

a.查詢時減少使用*返回全部列,不要返回不需要的列

b.索引應該盡量小,在位元組數小的列上建立索引

c.where子句中有多個條件表示式時,包含索引列的表示式應置於其他條件表示式之前

d.避免在order by子句中使用表示式

e.根據業務資料發生頻率,定期重新生成或重新組織索引,進行碎片整理

使用系統儲存過程sp_helpindex檢視有關表或檢視上索引的資訊

exec

sp_helpindex name

--name 可以是表名或檢視名

檢視result表的索引資訊 

exec sp_helpindex result
使用檢視sys.indexes檢視索引  

select

*from sys.indexes

檢視myschool資料庫中全部索引資訊

use

myschool

select

*from sys.indexes

索引 (36字串主鍵)absdhjagsjdhgasjdhg

索引:針對表的某個欄位去建立

優點:幫助提高查詢效率

缺點:占用物理磁碟空間

首要條件:經常用作查詢 產品名稱、產品型號

產品描述(大字段)like

唯一,字段內容小,資料重複性低

--

十萬級、百萬級

--假如迴圈插入100萬條資料、資料有規律可循

insert

into

test1

values(3,'

華為手機pro20')

--後台報表啊

select

*from

test1

with(index

=test1_name)--

使用索引

where name=

'華為手機pro20'--

非聚集索引nonclustered

--唯一:可選unique

--建立乙個唯一非聚集索引 順序不是磁碟物理順序

create

unique

nonclustered

index test1_name --

名稱,確保唯一性,有意義

on test1(name)--

表名+列名

with

fillfactor=50

--填充因子百分比0-100之間

--假如你設計的表,不需要頻繁的做新增、刪除

--缺點:佔空間

--57同學

--假如標明57個人

--填充因子為0

--1,2,3,4,5,6,7,8....57

--檢視:查詢效率是沒有關係

--優點:簡化查詢語句

select

*from

sysindexes

where name =

'test1_name

'

資料庫基礎 索引(SQL Server)

參考原文 首先我們要知道資料庫索引是用來幹什麼的 索引是為了加快資料查詢速度而引入的,資料庫中儲存的資料在物理層是隨機儲存的,對某個列建立索引就會對該列的關鍵值進行排序並用某種資料結構儲存他的值和對應的實體地址,在sql中用的資料結構是b樹。索引的分類 1.聚集索引 聚集索引會對資料按索引按索引關鍵...

SQL server 資料庫之「索引」詳解

什麼是索引?資料庫中的索引與書籍中的目錄類似,索引使sql server編排資料的內部方法,它為sql server提供一種方法來編排查詢資料的路由。索引頁是資料中儲存索引的資料頁。索引頁存放檢索資料行的關鍵字頁及該資料行的位址指標。通過使用索引,可以大大提高資料庫的檢索速度 改善資料庫效能。索引的...

SQL SERVER資料庫索引 學習筆記

定義 索引是對資料庫表中一列或多列的值進行排序的一種結構,使用索引可快速訪問資料庫表中的特定資訊。優點與缺點 建立索引的目的是加快對錶中記錄的查詢或排序。為表設定索引要付出代價的 一是增加了資料庫的儲存空間,二是在插入和修改資料時要花費較多的時間 因為索引也要隨之變動 唯一索引唯一索引是不允許其中任...