算法索引

算法索引

索引是對資料庫表中一列或多列的值進行排序的一種結構,使用索引可快速訪問資料庫表中的特定信息。算法索引是指算法集成包或API中算法調用接口按照某種規則排序。算法索引有利於對有關算法和調用。算法索引一般是指將有關算法聚簇在一個模組中。

基本介紹

  • 中文名:算法索引
  • 外文名:algorithm index
  • 學科:計算機
  • 定義:算法按照某種規則排序
  • 有關術語:索引
  • 領域:計算機系統
簡介,聚簇索引,程式包,優缺點,優點,缺點,

簡介

在數學和計算機科學之中,算法(Algorithm)為一個計算的具體步驟,常用於計算、數據處理和自動推理。在實際套用中,為了方便套用人員對有關算法調用,通常將有關算法封裝在一個程式包中。算法索引是指程式包中的有關算法進行聚族和排序,將有關算法放在一起,方便調用、分類比較。

聚簇索引

聚簇索引也稱為聚集索引,聚類索引,簇集索引,是一種對磁碟上實際數據重新組織以按指定的一個或多個列的值排序。聚簇索引類似於電話簿,後者按姓氏排列數據。由於聚簇索引規定數據在表中的物理存儲順序,因此一個表只能包含一個聚簇索引。但該索引可以包含多個列(組合索引),就像電話簿按姓氏和名字進行組織一樣。漢語字典也是聚簇索引的典型套用,在漢語字典里,索引項是字母+聲調,字典正文也是按照先字母再聲調的順序排列。聚簇索引對於那些經常要搜尋範圍值的列特別有效。使用聚簇索引找到包含第一個值的行後,便可以確保包含後續索引值的行在物理相鄰。例如,如果應用程式執行的一個查詢經常檢索某一日期範圍內的記錄,則使用聚集索引可以迅速找到包含開始日期的行,然後檢索表中所有相鄰的行,直到到達結束日期。這樣有助於提高此類查詢的性能。同樣,如果對從表中檢索的數據進行排序時經常要用到某一列,則可以將該表在該列上聚簇(物理排序),避免每次查詢該列時都進行排序,從而節省成本。

程式包

程式包是一組相互關聯的程式匯集而成的集合。①計算機製造商為方便用戶使用而提供的程式系統。一般包括作業系統、彙編程式、編譯程式、診斷程式、交叉彙編程式及由各種子程式和應用程式組成的程式庫。②由相互有關的一組電腦程式組成的程式集合,用以執行某些特定的功能,能為多個計算機用戶所使用。

優缺點

優點

通過建立索引可以極大地提高在資料庫中獲取所需信息的速度,同時還能提高伺服器處理相關搜尋請求的效率,從這個方面來看它具有以下優點 :
在設計資料庫時,通過創建一個惟一的索引,能夠在索引和信息之間形成一對一的映射式的對應關係,增加數據的惟一性特點。
能提高數據的搜尋及檢索速度,符合資料庫建立的初衷。
能夠加快表與表之間的連線速度,這對於提高數據的參考完整性方面具有重要作用。
在信息檢索過程中,若使用分組及排序子句進行時,通過建立索引能有效的減少檢索過程中所需的分組及排序時間,提高檢索效率。
建立索引之後,在信息查詢過程中可以使用最佳化隱藏器,這對於提高整個信息檢索系統的性能具有重要意義。

缺點

雖然索引的建立在提高檢索效率方面具有諸多積極的作用,但還是存在下列缺點 :
在資料庫建立過程中,需花費較多的時間去建立並維護索引,特別是隨著數據總量的增加,所花費的時間將不斷遞增。
在資料庫中創建的索引需要占用一定的物理存儲空間,這其中就包括數據表所占的數據空間以及所創建的每一個索引所占用的物理空間,如果有必要建立起聚簇索引,所占用的空間還將進一步的增加
在對表中的數據進行修改時,例如對其進行增加、刪除或者是修改操作時,索引還需要進行動態的維護,這給資料庫的維護速度帶來了一定的麻煩。
排序
又稱分類,是根據項目中所含信息關鍵字碼或欄位的有關規則,對信息項目進行排列整理。按存貯信息項目的環境,分內排序和外排序兩大類.當信息項目放至記憶體中一次完成排序的稱內排序;當信息項目數量大,要將項目分成幾部分,逐個進行內排序,再合併以完成最終排序任務的,稱外排序.排序的種類很多,比較有代表性的排序方法有:
①交換排序:思路是按規則比較兩相鄰信息項的排序關鍵字值,如為逆序則兩項交換,否則比較下一對,直至全部信息項排好序為止,屬於交換排序類的有起冒排序;快速排序;模擬遞歸排序。
②插入排序:思路是將信息項目以合適的位置一個一個地插入到已排好序的檔案中,直至全部項目插完為止.屬於插入排序的有:直接插入排序;二分插入排序;希爾排序。
③選擇排序:思路是選擇信息項目中關鍵字最小的項放到已排序檔案的最後,反覆作這件事,直至全部排好序為止。屬於這類排序方法的有:簡單選擇排序;樹形選擇排序;堆排序。
④歸併排序:思路是將兩個或兩個以上的已排好序的若干項目加以歸併,每次歸併都使包含的項目增多,直至全部排好序。
⑤ 基數排序:它是藉助於多關鍵字排序的思想對單邏輯關鍵字進行排序的方法。
排序算法的效率與數據的類型、規模和計算機系統的特性有關.在給定套用環境的情況下。可從算法的時間開銷(數據的比較次數和移動次數等)、空間開銷(執行算法所需的存貯空間)和程式設計的難易程度來評價算法的優劣。

相關詞條

熱門詞條

聯絡我們