国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

索引的作用與結構(數(shù)據(jù)庫)

這篇具有很好參考價值的文章主要介紹了索引的作用與結構(數(shù)據(jù)庫)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

一、索引概述

1、什么叫索引

2、索引的作用

二、SQL Server索引下的數(shù)據(jù)組織結構

1.堆集結構

?2.聚集索引結構

3.非聚集索引

4.擴展盤區(qū)空間的管理


一、索引概述

1、什么叫索引

? ? ? ?數(shù)據(jù)庫中的索引與書籍中的索引類似,在一本書中,利用索引可以快速查找所需信息,無須閱讀整本書。在數(shù)據(jù)庫中,索引使數(shù)據(jù)庫程序無須對整個表進行掃描,就可以在其中找到所需數(shù)據(jù)。

? ? ? ? ?書中的索引是一個詞語列表,其中注明了包含各個詞的頁碼。而數(shù)據(jù)庫中的索引是某個表中一列或者若干列值的集合和相應的指向表中物理標識這些值的數(shù)據(jù)頁的邏輯指針清單

索引的作用與結構(數(shù)據(jù)庫)

?文章來源地址http://www.zghlxwxcb.cn/news/detail-443153.html

2、索引的作用

  • 通過創(chuàng)建唯一索引,可以保證數(shù)據(jù)記錄的唯一性。
  • 可以大大加快數(shù)據(jù)檢索速度。
  • 可以加速表與表之間的連接,這一點在實現(xiàn)數(shù)據(jù)的參照完整性方面有特別的意義。
  • 在使用ORDER BY和GROUP BY子句中進行檢索數(shù)據(jù)時,可以顯著減少查詢中分組和排序的時間。
  • 使用索引可以在檢索數(shù)據(jù)的過程中使用優(yōu)化隱藏器,提高系統(tǒng)性能

二、SQL Server索引下的數(shù)據(jù)組織結構

在 SQL Server 數(shù)據(jù)庫內(nèi),索引對象作為 8 KB 頁的集合存儲。

SQL Server 支持視圖上的索引。視圖上第一個允許的索引是聚集索引。在視圖上執(zhí)行 CREATE INDEX 語句時,視圖的結果集被具體化,并且存儲在與有聚集索引的表具有相同結構的數(shù)據(jù)庫中。

每個表或索引視圖的數(shù)據(jù)行存儲在 8 KB 數(shù)據(jù)頁集合中。每個數(shù)據(jù)頁都有一個 96 字節(jié)的頁頭,其中包含象擁有該頁的表的標識符 (ID) 這樣的系統(tǒng)信息。如果頁鏈接在索引列表中,則頁頭還包含指向下一頁及前面用過的頁的指針。在頁尾有行偏移表。數(shù)據(jù)行填充頁的剩余部分。

索引的作用與結構(數(shù)據(jù)庫)

1.堆集結構

堆集在 sysindexes 內(nèi)有一行,其 indid = 0。

sysindexes.FirstIAM 列指向 IAM 頁鏈的 IAM 首頁,IAM 頁鏈管理分配給堆集的空間。

SQL Server 2000 使用 IAM 頁在堆集中瀏覽。堆集內(nèi)的數(shù)據(jù)頁和行沒有任何特定的順序,也不鏈接在一起。數(shù)據(jù)頁之間唯一的邏輯連接是記錄在 IAM 頁內(nèi)的連接。

通過掃描 IAM 頁可以對堆集進行表掃描或串行讀,以找到容納這個堆集的頁的擴展盤區(qū)。因為 IAM 按擴展盤區(qū)在數(shù)據(jù)文件內(nèi)存在的順序表示它們,所以這意味著串行堆集掃描一律沿每個文件進行。使用 IAM 頁設置掃描順序還意味著堆集中的行一般不按照插入的順序返回。

索引的作用與結構(數(shù)據(jù)庫)

?2.聚集索引結構

  • 聚集索引對表的物理數(shù)據(jù)頁中的數(shù)據(jù)按列進行排序,然后再重新存儲到磁盤上,即聚集索引與數(shù)據(jù)是混為一體的,它的葉節(jié)點中存儲的是實際的數(shù)據(jù)。
  • 每個表只能有一個聚集索引,因為數(shù)據(jù)行本身只能按一個順序存儲。
  • 應當在創(chuàng)建任何非聚集索引之前創(chuàng)建聚集索引。
  • 聚集索引的大小平均是表的5%。
  • 在創(chuàng)建索引時系統(tǒng)需要比索引的表1.2倍的磁盤空間,索引創(chuàng)建完成后自動回收。
  • 聚集索引在 sysindexes 內(nèi)有一行,其 indid = 1。數(shù)據(jù)鏈內(nèi)的頁和其內(nèi)的行按聚集索引鍵值排序。所有插入都在所插入行中的鍵值與排序順序相匹配時執(zhí)行。
  • SQL Server2000 將索引組織為 B 樹。索引內(nèi)的每一頁包含一個頁首,頁首后面跟著索引行。每個索引行都包含一個鍵值以及一個指向較低級頁或數(shù)據(jù)行的指針。索引的每個頁稱為索引節(jié)點。B 樹的頂端節(jié)點稱為根節(jié)點。索引的底層節(jié)點稱為葉節(jié)點。每級索引中的頁鏈接在雙向鏈接列表中。在聚集索引內(nèi)數(shù)據(jù)頁組成葉節(jié)點。根和葉之間的任何索引級統(tǒng)稱為中間級。
  • 對于聚集索引,sysindexes.root 指向它的頂端。SQL Server 沿著聚集索引瀏覽以找到聚集索引鍵對應的行。

索引的作用與結構(數(shù)據(jù)庫)

?索引的作用與結構(數(shù)據(jù)庫)

?在lname列上創(chuàng)建索引后,查詢employee表可以看出表中記錄是按lname值的順序排列;刪除lname列上的聚集索引,而在emp_id上創(chuàng)建聚集索引后,表中記錄按照emp_id列值順序排列。

3.非聚集索引

  • 非聚集索引具有完全獨立于數(shù)據(jù)行的結構,使用非聚集索引不用將物理數(shù)據(jù)頁中的數(shù)據(jù)按列排序。非聚集索引的葉節(jié)點存儲了組成非聚集索引的關鍵字值和行定位器。
  • 如果索引時沒有指定索引類型,默認情況下為非聚集索引;
  • 應當在創(chuàng)建非聚集索引之前創(chuàng)建聚集索引;
  • 每個表最多可以創(chuàng)建249個非聚集索引;
  • 最好在唯一值較多的列上創(chuàng)建非聚集索引;
  • 經(jīng)常需要聯(lián)接和分組查詢,應在聯(lián)接和分組操作中使用的列上創(chuàng)建多個非聚集索引,在任何外鍵列上創(chuàng)建一個聚集索引。
  • 非聚集索引與聚集索引一樣有 B 樹結構,但是有兩個重大差別:

1、數(shù)據(jù)行不按非聚集索引鍵的順序排序和存儲。

2、非聚集索引的葉層不包含數(shù)據(jù)頁。 相反,葉節(jié)點包含索引行。

  • 非聚集索引可以在有聚集索引的表、堆集或索引視圖上定義。在 SQL Server 中,非聚集索引中的行定位器有兩種形式:

1、如果表是堆集(沒有聚集索引),行定位器就是指向行的指針。該指針用文件標識符 (ID)、頁碼和頁上的行數(shù)生成。整個指針稱為行 ID。

2、如果表有聚集索引,或者索引在索引視圖上,則行定位器就是行的聚集索引鍵。

?

索引的作用與結構(數(shù)據(jù)庫)

4.擴展盤區(qū)空間的管理

索引分配映射表(IAM)頁映射數(shù)據(jù)庫文件中由堆集或索引使用的擴展盤區(qū)。

對于任何具有ntext、text和image類型的列的表,IAM頁還映射分配給這些類型的頁鏈的擴展盤區(qū)。

這些對象中的每一個都有由一個或多個記錄所有分配給自己的擴展盤區(qū)的IAM頁組成的鏈。

每個對象對每個包含擴展盤區(qū)的文件都至少有一個IAM。

如果分配給對象的文件上的擴展盤區(qū)的范圍超過了一個IAM頁可以記錄的范圍,則擴展盤區(qū)可能會在文件上有多個IAM頁。

索引的作用與結構(數(shù)據(jù)庫)

?IAM頁按需要分配給每個對象,并在文件內(nèi)隨機定位。

Sysindexes.dbo.FirstIAM指向?qū)ο蟮腎AM首頁,這個對象的所有IAM 頁用鏈條鏈接在一起。

IAM 頁的頁首說明IAM所映射的擴展盤區(qū)范圍的起始擴展盤區(qū)。

IAM中還有大位圖,該位圖內(nèi)的每個位代表一個擴展盤區(qū)。

位圖的第一個位代表范圍內(nèi)的第一個擴展盤區(qū),第二個位代表范圍內(nèi)的第二個擴展盤區(qū),依此類推。

如果一個位是0,則不將它代表的擴展盤區(qū)分配給擁有該IAM的對象。如果這個位是1,則將它代表的擴展盤區(qū)分配給擁有該IAM頁的對象。

索引的作用與結構(數(shù)據(jù)庫)

?

?

到了這里,關于索引的作用與結構(數(shù)據(jù)庫)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 數(shù)據(jù)庫為什么使用B+樹而不是B樹做索引

    數(shù)據(jù)庫為什么使用B+樹而不是B樹做索引

    ??作者簡介,黑夜開發(fā)者,CSDN領軍人物,全棧領域優(yōu)質(zhì)創(chuàng)作者?,CSDN博客專家,阿里云社區(qū)專家博主,2023年6月CSDN上海賽道top4。 ??數(shù)年電商行業(yè)從業(yè)經(jīng)驗,歷任核心研發(fā)工程師,項目技術負責人。 ??本文已收錄于PHP專欄:MySQL的100個知識點。 ??歡迎 ??點贊?評論?收

    2024年02月10日
    瀏覽(23)
  • 數(shù)據(jù)結構與算法之美學習筆記:48 | B+樹:MySQL數(shù)據(jù)庫索引是如何實現(xiàn)的?

    數(shù)據(jù)結構與算法之美學習筆記:48 | B+樹:MySQL數(shù)據(jù)庫索引是如何實現(xiàn)的?

    本節(jié)課程思維導圖: 作為一個軟件開發(fā)工程師,你對數(shù)據(jù)庫肯定再熟悉不過了。作為主流的數(shù)據(jù)存儲系統(tǒng),它在我們的業(yè)務開發(fā)中,有著舉足輕重的地位。在工作中,為了加速數(shù)據(jù)庫中數(shù)據(jù)的查找速度,我們常用的處理思路是,對表中數(shù)據(jù)創(chuàng)建索引。那你是否思考過,數(shù)據(jù)庫

    2024年01月16日
    瀏覽(97)
  • 【從刪庫到跑路】MySQL數(shù)據(jù)庫的索引(一)——索引的結構(BTree B+Tree Hash),語法等

    【從刪庫到跑路】MySQL數(shù)據(jù)庫的索引(一)——索引的結構(BTree B+Tree Hash),語法等

    ??專欄【MySQL】 ??喜歡的詩句:更喜岷山千里雪 三軍過后盡開顏。 ??音樂分享【如愿】 ??歡迎并且感謝大家指出小吉的問題 索引(index)是幫助MySQL 高效獲取數(shù)據(jù) 的 有序 的 數(shù)據(jù)結構 在數(shù)據(jù)之外,數(shù)據(jù)庫系統(tǒng)還維護著滿足特定查找算法的數(shù)據(jù)結構,這些數(shù)據(jù)結構以某種方

    2024年02月16日
    瀏覽(26)
  • [架構之路-236]:目標系統(tǒng) - 縱向分層 - 數(shù)據(jù)庫 - 數(shù)據(jù)庫系統(tǒng)基礎與概述:三階段模型(概念模型、邏輯模型、物理模型)、三級模式結構(外模式、模式、內(nèi)模式)

    [架構之路-236]:目標系統(tǒng) - 縱向分層 - 數(shù)據(jù)庫 - 數(shù)據(jù)庫系統(tǒng)基礎與概述:三階段模型(概念模型、邏輯模型、物理模型)、三級模式結構(外模式、模式、內(nèi)模式)

    目錄 一、數(shù)據(jù)庫設計階段性模型:概念模型、邏輯模型、物理模型 1.1 概念模型(Conceptual Model)- 業(yè)務模型: 實體:entity 屬性或特征: key鍵值/碼: 域(Domain): 實體類型:entity type 實體集合: 聯(lián)系: 1.2 邏輯模型(Logical Model)- 內(nèi)存模型(最核心): 1.3 物理模型(Phys

    2024年02月02日
    瀏覽(111)
  • Laravel框架中的目錄結構都有什么作用?

    Laravel框架中的目錄結構都有什么作用?

    Laravel框架安裝完成后,會在C:lwebwwwlapavel目錄下自動創(chuàng)建一些文件和目錄。本節(jié)來了解一下框架中各個目錄的作用。 Laravel框架一級目錄的作用如表所示。 在熟悉了一級目錄的作用后,下面來看一下Laravel框架常用的子目錄和文件的作用,如下表所示。

    2024年02月07日
    瀏覽(18)
  • 在Django的數(shù)據(jù)庫模型的類中,通常還會定義一個名叫Meta的內(nèi)部類,這個類有什么作用?

    在Django的數(shù)據(jù)庫模型中, Meta 類是一個內(nèi)部類,用于定義一些與模型相關的元數(shù)據(jù)(metadata)。它提供了一種在模型類中指定各種選項和配置的方式。 以下是 Meta 類的一些常見用途和作用: 定義模型的數(shù)據(jù)庫表名: 通過 db_table 選項可以指定模型對應的數(shù)據(jù)庫表的名稱。例如

    2024年02月12日
    瀏覽(19)
  • 【數(shù)據(jù)庫原理】(28)數(shù)據(jù)庫設計概述

    數(shù)據(jù)庫設計是為了實現(xiàn)數(shù)據(jù)庫應用系統(tǒng),涉及結構特性設計、行為特性設計和物理模式設計三個主要方面。 1. 數(shù)據(jù)庫的結構特性設計 數(shù)據(jù)庫的結構特性設計是數(shù)據(jù)庫設計的關鍵,包括數(shù)據(jù)庫結構的設計和建立合理的數(shù)據(jù)模型。這一部分也被稱為數(shù)據(jù)庫的靜態(tài)結構設計。 步驟

    2024年01月19日
    瀏覽(32)
  • 【數(shù)據(jù)處理】建立數(shù)據(jù)庫索引并定時重建索引

    【數(shù)據(jù)處理】建立數(shù)據(jù)庫索引并定時重建索引

    給表 建立索引能加速查詢 (我的習慣是給經(jīng)常查詢的列建立索引,如果經(jīng)常查詢的是id列,我會給將id設置為主鍵),長時間查詢后會變慢(具體原因目前不清楚),公司前輩說 定期重建索引就可以解決問題 ,我就在 Microsoft Sql Server Management Studio 里設置了定時“自動重建索

    2024年01月25日
    瀏覽(21)
  • DB(一):數(shù)據(jù)庫概述、SQL概述、Oracle數(shù)據(jù)類型

    包括Oracle、DB2、SQL Server、MySQL數(shù)據(jù)庫概述;數(shù)據(jù)定義語言DDL、數(shù)據(jù)操作語言DML、事務控制語言TCL、數(shù)據(jù)查詢語言DQL、數(shù)據(jù)控制語言DCL語言介紹;NUMBER 、CHAR、VARCHAR2、DATE數(shù)據(jù)庫類型;CHAR和VARCHAR2的存儲編碼、CHAR和VARCHAR2的最大長度、LONG和CLOB類型。 1、DB和DBMS (1)、數(shù)據(jù)庫(

    2024年02月09日
    瀏覽(111)
  • 【數(shù)據(jù)庫】索引和事務

    【數(shù)據(jù)庫】索引和事務

    目錄 1.索引 1.1關于索引 索引是什么? 為什么要有索引? 索引的作用? 索引的優(yōu)點和缺點? 1.2索引類型及創(chuàng)建 索引的分類 創(chuàng)建索引 1.3索引的數(shù)據(jù)結構 1.4索引覆蓋 2.事務 2.1關于事務 概念 事務的使用 2.2事務的特性 2.3事務的隔離級別 read uncommitted read committed repaeteble read se

    2023年04月25日
    瀏覽(38)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包