<ul id="g60s4"><pre id="g60s4"></pre></ul>
<strong id="g60s4"><nav id="g60s4"></nav></strong>
<ul id="g60s4"></ul>
  • <tr id="g60s4"></tr>
  • 
    
  • 或者

    索引

    作者:聚擎 瀏覽:1289 發(fā)布時(shí)間:2017-04-23
    編輯 分享 評(píng)論 1

    發(fā)展歷史

    編輯

    舊稱通檢、備檢或引得。組成的基本單位是索引款目??钅恳话惆ㄋ饕~、說(shuō)明或注釋語(yǔ) 、出處3項(xiàng)內(nèi)容 。所有索引款目實(shí)現(xiàn)有序化編排。其本質(zhì)特征是只揭示內(nèi)容出處或文獻(xiàn)線索 ,并不直接提供事實(shí)、資料本身。主要功能是為人們準(zhǔn)確、迅速地獲得文獻(xiàn)資料提供線索性指引。常見(jiàn)的索引主要有報(bào)刊論文資料索引、文集篇目索引、語(yǔ)詞索引、文句索引、關(guān)鍵詞索引、專名索引、主題索引等。

    索引最早出現(xiàn)于西方,主要是中世紀(jì)歐洲宗教著作的索引。18世紀(jì)以后西方開(kāi)始有主題索引,至19世紀(jì)末,內(nèi)容分析索引被廣泛使用。中國(guó)的索引出現(xiàn)較晚。一般認(rèn)為,明末傅山所編的《兩漢書(shū)姓名韻》是現(xiàn)存最早的人名索引。清代乾嘉時(shí)期,章學(xué)誠(chéng)曾力倡編纂群書(shū)綜合索引。20世紀(jì)20年代,隨著西方索引理論與編制技術(shù)的傳入,中國(guó)現(xiàn)代意義上的索引編制與研究才蓬勃展開(kāi) 。1930年錢(qián)亞新發(fā)表《索引和索引法》,1932年洪業(yè)發(fā)表《引得說(shuō)》,標(biāo)志著具有中國(guó)特色的現(xiàn)代索引理論、技術(shù)已迅速發(fā)展起來(lái)。20世紀(jì)50年代,計(jì)算機(jī)技術(shù)被運(yùn)用于索引編制 。此后,機(jī)編索引的大量出現(xiàn),使索引編制理論、技術(shù)、索引載體形式發(fā)生了深刻變革。

    目前SQL標(biāo)準(zhǔn)中沒(méi)有涉及索引,但商用關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)一般都支持索引機(jī)制,只是不同的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)支持的索引類(lèi)型不盡相同。

    索引已經(jīng)成為關(guān)系數(shù)據(jù)庫(kù)非常重要的部分。它們被用作包含所關(guān)心數(shù)據(jù)的表指針。通過(guò)一個(gè)索引,能從表中直接找到一個(gè)特定的記錄,而不必連續(xù)順序掃描這個(gè)表,一次一個(gè)地去查找。對(duì)于大的表,索引是必要的。沒(méi)有索引,要想得到一個(gè)結(jié)果要等好幾個(gè)小時(shí)、好幾天,而不是幾秒鐘。[1] 

    定義概念

    編輯

    索引是為了加速對(duì)表中數(shù)據(jù)行的檢索而創(chuàng)建的一種分散的存儲(chǔ)結(jié)構(gòu)。索引是針對(duì)表而建立的,它是由數(shù)據(jù)頁(yè)面以外的索引頁(yè)面組成的,每個(gè)索引頁(yè)面中的行都會(huì)含有邏輯指針,以便加速檢索物理數(shù)據(jù)。[2] 

    在數(shù)據(jù)庫(kù)關(guān)系圖中,可以在選定表的“索引/鍵”屬性頁(yè)中創(chuàng)建、編輯或刪除每個(gè)索引類(lèi)型。當(dāng)保存索引所附加到的表,或保存該表所在的關(guān)系圖時(shí),索引將保存在數(shù)據(jù)庫(kù)中。

    作用

    編輯

    在數(shù)據(jù)庫(kù)系統(tǒng)中建立索引主要有以下作用:

    (1)快速取數(shù)據(jù);

    (2)保證數(shù)據(jù)記錄的唯一性;

    (3)實(shí)現(xiàn)表與表之間的參照完整性;

    (4)在使用ORDER by、group by子句進(jìn)行數(shù)據(jù)檢索時(shí),利用索引可以減少排序和分組的時(shí)間。

    優(yōu)缺點(diǎn)

    編輯

    優(yōu)點(diǎn)

    1.大大加快數(shù)據(jù)的檢索速度;

    2.創(chuàng)建唯一性索引,保證數(shù)據(jù)庫(kù)表中每一行數(shù)據(jù)的唯一性;

    3.加速表和表之間的連接;

    4.在使用分組和排序子句進(jìn)行數(shù)據(jù)檢索時(shí),可以顯著減少查詢中分組和排序的時(shí)間。

    缺點(diǎn)

    1.索引需要占物理空間。

    2.當(dāng)對(duì)表中的數(shù)據(jù)進(jìn)行增加、刪除和修改的時(shí)候,索引也要?jiǎng)討B(tài)的維護(hù),降低了數(shù)據(jù)的維護(hù)速度。

    索引類(lèi)型

    編輯

    根據(jù)數(shù)據(jù)庫(kù)的功能,可以在數(shù)據(jù)庫(kù)設(shè)計(jì)器中創(chuàng)建四種索引:普通索引、唯一索引、主鍵索引和聚集索引。

    普通索引

    最基本的索引類(lèi)型,沒(méi)有唯一性之類(lèi)的限制。普通索引可以通過(guò)以下幾種方式創(chuàng)建:

    創(chuàng)建索引,例如CREATE INDEX <索引的名字> ON tablename (列的列表);

    修改表,例如ALTER TABLE tablename ADD INDEX [索引的名字] (列的列表);[3] 

    創(chuàng)建表的時(shí)候指定索引,例如CREATE TABLE tablename ( [...], INDEX [索引的名字] (列的列表) );

    唯一索引

    唯一索引是不允許其中任何兩行具有相同索引值的索引。

    當(dāng)現(xiàn)有數(shù)據(jù)中存在重復(fù)的鍵值時(shí),大多數(shù)數(shù)據(jù)庫(kù)不允許將新創(chuàng)建的唯一索引與表一起保存。數(shù)據(jù)庫(kù)還可能防止添加將在表中創(chuàng)建重復(fù)鍵值的新數(shù)據(jù)。例如,如果在 employee 表中職員的姓 (lname) 上創(chuàng)建了唯一索引,則任何兩個(gè)員工都不能同姓。

    對(duì)某個(gè)列建立UNIQUE索引后,插入新紀(jì)錄時(shí),數(shù)據(jù)庫(kù)管理系統(tǒng)會(huì)自動(dòng)檢查新紀(jì)錄在該列上是否取了重復(fù)值,在CREATE TABLE 命令中的UNIQE約束將隱式創(chuàng)建UNIQUE索引。

    創(chuàng)建唯一索引的幾種方式:

    創(chuàng)建索引,例如CREATE UNIQUE INDEX <索引的名字> ON tablename (列的列表);

    修改表,例如ALTER TABLE tablename ADD UNIQUE [索引的名字] (列的列表); ;

    創(chuàng)建表的時(shí)候指定索引,例如CREATE TABLE tablename ( [...], UNIQUE [索引的名字] (列的列表) );

    主鍵索引

    簡(jiǎn)稱為主索引,數(shù)據(jù)庫(kù)表中一列或列組合(字段)的值唯一標(biāo)識(shí)表中的每一行。該列稱為表的主鍵。

    在數(shù)據(jù)庫(kù)關(guān)系圖中為表定義主鍵將自動(dòng)創(chuàng)建主鍵索引,主鍵索引是唯一索引的特定類(lèi)型。該索引要求主鍵中的每個(gè)值都唯一。當(dāng)在查詢中使用主鍵索引時(shí),它還允許對(duì)數(shù)據(jù)的快速訪問(wèn)。

    提示盡管唯一索引有助于定位信息,但為獲得最佳性能結(jié)果,建議改用主鍵索引。

    候選索引

    與主索引一樣要求字段值的唯一性,并決定了處理記錄的順序。在數(shù)據(jù)庫(kù)和自由表中,可以為每個(gè)表建立多個(gè)候選索引。[4] 

    聚集索引

    也稱為聚簇索引,在聚集索引中,表中行的物理順序與鍵值的邏輯(索引)順序相同。一個(gè)表只能包含一個(gè)聚集索引, 即如果存在聚集索引,就不能再指定CLUSTERED 關(guān)鍵字。

    索引不是聚集索引,則表中行的物理順序與鍵值的邏輯順序不匹配。與非聚集索引相比,聚集索引通常提供更快的數(shù)據(jù)訪問(wèn)速度。聚集索引更適用于對(duì)很少對(duì)基表進(jìn)行增刪改操作的情況。

    如果在表中創(chuàng)建了主鍵約束,SQL Server將自動(dòng)為其產(chǎn)生唯一性約束。在創(chuàng)建主鍵約束時(shí),指定了CLUSTERED關(guān)鍵字或干脆沒(méi)有制定該關(guān)鍵字,SQL Sever將會(huì)自動(dòng)為表生成唯一聚集索引。

    非聚集索引

    也叫非簇索引,在非聚集索引中,數(shù)據(jù)庫(kù)表中記錄的物理順序與索引順序可以不相同。一個(gè)表中只能有一個(gè)聚集索引,但表中的每一列都可以有自己的非聚集索引。如果在表中創(chuàng)建了主鍵約束,SQL Server將自動(dòng)為其產(chǎn)生唯一性約束。在創(chuàng)建主鍵約束時(shí),如果制定NONCLUSTERED關(guān)鍵字,則將為表產(chǎn)生唯一聚集索引。[5] 

    操縱索引

    編輯

    維護(hù)和使用

    DBMS自動(dòng)完成維護(hù)和自動(dòng)選擇是否使用索引以及使用哪些索引。

    創(chuàng)建索引

    SQL3沒(méi)有提供建立索引的方法。但是,從事DBMS開(kāi)發(fā)、銷(xiāo)售的公司都提供他們具有這種功能的SQL工具。因?yàn)檫@些工具不是標(biāo)準(zhǔn)化的,它們相互不同。SQL語(yǔ)言使用CREATE INDEX 語(yǔ)句建立索引,其一般格式是:

    CREATE [UNIQUE] [CLUSTERED| NONCLUSTERED] INDEX <索引名>

    ON <表名>(<列名>[ASC|DESC] [, <列名>[ASC|DESC]...])

    說(shuō)明:與表一樣,索引也需要有唯一的名字,且基于一個(gè)表來(lái)建立,可以根據(jù)表中的一列或者多列,當(dāng)列的順序都是升序默認(rèn)可不必標(biāo)出,當(dāng)屬性列有按照降序排列的,所有屬性的升序降序都不要標(biāo)明。

    UNIQUE——建立唯一索引。

    CLUSTERED——建立聚集索引。

    NONCLUSTERED——建立非聚集索引。

    ASC——索引升序排序。

    DESC——索引降序排序。

    修改索引

    對(duì)于已經(jīng)建立的索引,如果需要對(duì)其重新命名,可以使用ALTER INDEX 語(yǔ)句。其一般格式為

    ALTER INDEX <舊引索名字> RENAME TO<新引索名>

    刪除索引

    當(dāng)某個(gè)時(shí)期基本表中數(shù)據(jù)更新頻繁或者某個(gè)索引不在需要時(shí),需要?jiǎng)h除部分索引。SQL語(yǔ)言使用DROP INDEX 語(yǔ)句刪除索引,其一般格式是:

    DROP INDEX<索引名>

    刪除索引時(shí),DBMS不僅在物理刪除相關(guān)的索引數(shù)據(jù),也會(huì)從數(shù)據(jù)字典刪除有關(guān)該索引的描述。

    注意事項(xiàng)

    編輯

    并非所有的數(shù)據(jù)庫(kù)都以相同的方式使用索引。作為通用規(guī)則,只有當(dāng)經(jīng)常查詢索引列中的數(shù)據(jù)時(shí),才需要在表上創(chuàng)建索引。索引占用磁盤(pán)空間,并且降低添加、刪除和更新行的速度。如果應(yīng)用程序非常頻繁地更新數(shù)據(jù)或磁盤(pán)空間有限,則可能需要限制索引的數(shù)量。在表較大是在建立索引,表中的數(shù)據(jù)越多,索引的優(yōu)越性越明顯。

    可以基于數(shù)據(jù)庫(kù)表中的單列或多列創(chuàng)建索引。多列索引使您可以區(qū)分其中一列可能有相同值的行。

    如果經(jīng)常同時(shí)搜索兩列或多列或按兩列或多列排序時(shí),索引也很有幫助。例如,如果經(jīng)常在同一查詢中為姓和名兩列設(shè)置判據(jù),那么在這兩列上創(chuàng)建多列索引將很有意義。

    確定索引的有效性:

    檢查查詢的 WHERE 和 JOIN 子句。在任一子句中包括的每一列都是索引可以選擇的對(duì)象。

    對(duì)新索引進(jìn)行試驗(yàn)以檢查它對(duì)運(yùn)行查詢性能的影響。

    考慮已在表上創(chuàng)建的索引數(shù)量。最好避免在單個(gè)表上有很多索引。

    檢查已在表上創(chuàng)建的索引的定義。最好避免包含共享列的重疊索引。

    檢查某列中唯一數(shù)據(jù)值的數(shù)量,并將該數(shù)量與表中的行數(shù)進(jìn)行比較。比較的結(jié)果就是該列的可選擇性,這有助于確定該列是否適合建立索引,如果適合,確定索引的類(lèi)型。


    評(píng)論(0人參與,0條評(píng)論)

    發(fā)布評(píng)論

    最新評(píng)論

    詞條統(tǒng)計(jì)

  • 瀏覽次數(shù):1289
  • 編輯次數(shù):0次歷史版本
  • 最近更新:2017-04-23
  • 創(chuàng)建者:聚擎
  • 相關(guān)詞條

    相關(guān)問(wèn)答

    相關(guān)百科

    相關(guān)資訊

    国产成人精品无码免费看| 香蕉在线精品视频在线观看2| 久久婷婷五月综合色精品| 国产精品岛国久久久久| 久久亚洲精品无码VA大香大香 | 国产精品无码亚洲一区二区三区| 国产人成精品香港三级在| 精品国产乱码久久久久久呢| 中文字幕亚洲综合精品一区| 999精品久久久中文字幕蜜桃| 无码久久精品国产亚洲Av影片| 午夜精品久久久久久99热| 人妻精品久久久久中文字幕一冢本| 久久国产精品亚洲综合| 久久无码专区国产精品| 久久99精品久久久久麻豆| 久久香蕉国产线看观看精品yw| 久热这里只有精品12| 91热久久免费精品99| 精品不卡一区二区| 亚洲精品无码专区在线播放| 亚洲av永久中文无码精品| 国产精品毛片AV久久66| 女同久久精品国产99国产精品| 国产精品日本亚洲777| 国产91精品久久久久999| 久久亚洲日韩看片无码| 精品一区二区三区四区电影| 亚洲午夜福利精品无码| 久久精品国产WWW456C0M| 亚洲乱码精品久久久久..| 亚洲国产精品成人精品无码区 | 亚洲日韩看片无码电影| 日韩精品福利视频一区二区三区 | 久久99国产综合精品女同| 久久国语露脸国产精品电影| 日韩精品久久久久久久电影| 精品一线二线三线区别在哪欧美| 在线观看国产精品va| 久久久无码精品亚洲日韩蜜臀浪潮| 人妻少妇偷人精品视频|