Ⅰ sql Server的兩種索引是何形式索引的作用索引的優缺點
索引的作用就象書的目錄,給出條件查找目錄找出所需要的內容
主鍵索引和聚合索引
我們來看:(gid是主鍵,fariqi是聚合索引列):
select top 10000 gid,fariqi,reader,title from tgongwen
用時:196 毫秒。 掃描計數 1,邏輯讀 289 次,物理讀 1 次,預讀 1527 次。
select top 10000 gid,fariqi,reader,title from tgongwen order by gid asc
用時:4720毫秒。 掃描計數 1,邏輯讀 41956 次,物理讀 0 次,預讀 1287 次。
select top 10000 gid,fariqi,reader,title from tgongwen order by gid desc
用時:4736毫秒。 掃描計數 1,邏輯讀 55350 次,物理讀 10 次,預讀 775 次。
select top 10000 gid,fariqi,reader,title from tgongwen order by fariqi asc
用時:173毫秒。 掃描計數 1,邏輯讀 290 次,物理讀 0 次,預讀 0 次。
select top 10000 gid,fariqi,reader,title from tgongwen order by fariqi desc
用時:156毫秒。 掃描計數 1,邏輯讀 289 次,物理讀 0 次,預讀 0 次。
從以上我們可以看出,不排序的速度以及邏輯讀次數都是和「order by 聚集索引列」 的速度是相當的,但這些都比「order by 非聚集索引列」的查詢速度是快得多的。
同時,按照某個欄位進行排序的時候,無論是正序還是倒序,速度是基本相當的。
Ⅱ 在sql中索引是拿來幹嘛 設置好了什麼應用為什麼說說索引是為了效率說得通俗一點哦 舉例
索引的作用就是提高數據的檢索速度,提交查詢時由sql優化器決定是否使用。
索引類似於書的目錄,通過目錄你可以更快的找到你要的內容。
另外索引會影響數據插入的速度,因為插入新的數據時,也需要維護索引,所以一個經常維護的表不能建太多的索引。
Ⅲ sql中索引有幾種每種的定義是什麼如何添加索引添加索引的好處是什麼
聚集索引和非聚集索引 聚集索引存儲記錄是物理上連續存在 非聚集索引是邏輯上的連續,物理存儲並不連續
REATE [UNIQUE][CLUSTERED | NONCLUSTERED] INDEX index_name
ON {table_name | view_name} [WITH [index_property [,....n]]
說明:
UNIQUE: 建立唯一索引。
CLUSTERED: 建立聚集索引。
NONCLUSTERED: 建立非聚集索引。
Index_property: 索引屬性。
UNIQUE索引既可以採用聚集索引結構,也可以採用非聚集索引的結構,如果不指明採用的索引結構,則SQL Server系統默認為採用非聚集索引結構
Ⅳ SQL中索引是什麼意思怎麼用
索引主要用來提升數據檢索速度,在數據量很大的時候很有用. 索引相當於圖書館的圖書目錄,你要找本書可以在圖書目錄上找到這本書在哪個書架第幾本,這樣明顯比到書架去找書要快得多,索引就是這個道理.
Ⅳ SQL必知必會(索引的原理)
一個 M 階的 B 樹(M>2)有以下的特性:
然後我們來看下如何用 B 樹進行查找。假設我們想要查找的關鍵字是 9,那麼步驟可以分為以下幾步:
B+ 樹基於 B 樹做出了改進,主流的 DBMS 都支持 B+ 樹的索引方式,比如 MySQL。B+ 樹和 B 樹的差異在於以下幾點:
比如,我們想要查找關鍵字 16,B+ 樹會自頂向下逐層進行查找:
Ⅵ sql中什麼是索引 有哪兩種,有什麼特點
微軟的SQL SERVER提供了兩種索引:聚集索引(clustered index,也稱聚類索引、簇集索引)和非聚集索引(nonclustered index,也稱非聚類索引、非簇集索引)。
下面,我們舉例來說明一下聚集索引和非聚集索引的區別:
其實,我們的漢語字典的正文本身就是一個聚集索引。比如,我們要查「安」字,就會很自然地翻開字典的前幾頁,因為「安」的拼音是「an」,而按照拼音排序漢字的字典是以英文字母「a」開頭並以「z」結尾的,那麼「安」字就自然地排在字典的前部。如果您翻完了所有以「a」開頭的部分仍然找不到這個字,那麼就說明您的字典中沒有這個字;同樣的,如果查「張」字,那您也會將您的字典翻到最後部分,因為「張」的拼音是「zhang」。也就是說,字典的正文部分本身就是一個目錄,您不需要再去查其他目錄來找到您需要找的內容。
我們把這種正文內容本身就是一種按照一定規則排列的目錄稱為「聚集索引」。
如果您認識某個字,您可以快速地從自典中查到這個字。但您也可能會遇到您不認識的字,不知道它的發音,這時候,您就不能按照剛才的方法找到您要查的字,而需要去根據「偏旁部首」查到您要找的字,然後根據這個字後的頁碼直接翻到某頁來找到您要找的字。但您結合「部首目錄」和「檢字表」而查到的字的排序並不是真正的正文的排序方法,比如您查「張」字,我們可以看到在查部首之後的檢字表中「張」的頁碼是672頁,檢字表中「張」的上面是「馳」字,但頁碼卻是63頁,「張」的下面是「弩」字,頁面是390頁。很顯然,這些字並不是真正的分別位於「張」字的上下方,現在您看到的連續的「馳、張、弩」三字實際上就是他們在非聚集索引中的排序,是字典正文中的字在非聚集索引中的映射。我們可以通過這種方式來找到您所需要的字,但它需要兩個過程,先找到目錄中的結果,然後再翻到您所需要的頁碼。
我們把這種目錄純粹是目錄,正文純粹是正文的排序方式稱為「非聚集索引」。
Ⅶ 談談我對SQL索引的理解
樓主的整理正確!
1、索引是根據查詢語句來建立的;
2、通常後一次有索引的會比前一次快,之於快多少取決於數據量。
比如:100條數據,沒有索引時平均需要查詢50次(從頭到尾逐個比較),有索引則只需要比較大約7次(類似二分查找法);
如果是1000條數據的話,沒有索引時平均需要查詢500次,有索引則只需要比較大約11~12次。
當然對於數據量巨大(超百萬行)的數據表,資料庫中的索引可能用B+樹,那麼通常約4次比較就可確定數據范圍(在200條以內)。
另,要注意的是查詢語句寫得不好,系統就無法利用索引,比如:把欄位名放在了一個函數中、某些「<>」、等等,這方面的內容可以在網上搜到不少的。
Ⅷ sql server中索引是什麼意思,其什麼作用
索引是:資料庫中的索引類似於一本書的目錄,在一本書中使用目錄可以快速找到你想要的信息,而不需要讀完全書。在資料庫中,資料庫程序使用索引可以重啊到表中的數據,而不必掃描整個表。書中的目錄是一個字詞以及各字詞所在的頁碼列表,資料庫中的索引是表中的值以及各值存儲位置的列表。
索引的用途:我們對數據查詢及處理速度已成為衡量應用系統成敗的標准,而採用索引來加快數據處理速度通常是最普遍採用的優化方法。
索引的利弊:查詢執行的大部分開銷是I/O,使用索引提高性能的一個主要目標是避免全表掃描,因為全表掃描需要從磁碟上讀取表的每一個數據頁,如果有索引指向數據值,則查詢只需要讀少數次的磁碟就行啦。所以合理的使用索引能加速數據的查詢。但是索引並不總是提高系統的性能,帶索引的表需要在資料庫中佔用更多的存儲空間,同樣用來增刪數據的命令運行時間以及維護索引所需的處理時間會更長。所以要合理使用索引,及時更新去除次優索引。