<listing id="vjp15"></listing><menuitem id="vjp15"></menuitem><var id="vjp15"></var><cite id="vjp15"></cite>
<var id="vjp15"></var><cite id="vjp15"><video id="vjp15"><menuitem id="vjp15"></menuitem></video></cite>
<cite id="vjp15"></cite>
<var id="vjp15"><strike id="vjp15"><listing id="vjp15"></listing></strike></var>
<var id="vjp15"><strike id="vjp15"><listing id="vjp15"></listing></strike></var>
<menuitem id="vjp15"><strike id="vjp15"></strike></menuitem>
<cite id="vjp15"></cite>
<var id="vjp15"><strike id="vjp15"></strike></var>
<var id="vjp15"></var>
<var id="vjp15"></var>
<var id="vjp15"><video id="vjp15"><thead id="vjp15"></thead></video></var>
<menuitem id="vjp15"></menuitem><cite id="vjp15"><video id="vjp15"></video></cite>
<var id="vjp15"></var><cite id="vjp15"><video id="vjp15"><thead id="vjp15"></thead></video></cite>
<var id="vjp15"></var>
<var id="vjp15"></var>
<menuitem id="vjp15"><span id="vjp15"><thead id="vjp15"></thead></span></menuitem>
<cite id="vjp15"><video id="vjp15"></video></cite>
<menuitem id="vjp15"></menuitem>

一種索引處理方法與設備的制造方法

文檔序號:9687491閱讀:569來源:國知局
一種索引處理方法與設備的制造方法
【技術領域】
[0001]本申請涉及數據庫技術領域,尤其涉及一種索引處理技術。
【背景技術】
[0002]在實際數據庫查詢、管理等應用中,數據庫中單表數據可能十分龐大,若想從一張包含大量數據的表中查詢到目標數據,往往為數據庫帶來過重的負載,進而影響到數據庫的性能。

【發明內容】

[0003]本申請的目的是提供一種索引處理方法與設備。
[0004]根據本申請的一個方面,提供了一種索引處理方法,包括:
[0005]獲取同一個數據庫對象的多個第一索引,其中,每個所述第一索引對應于所述數據庫對象的單條數據操作記錄;
[0006]合并所述多個第一索引以獲得所述數據庫對象的一個或多個第二索引,其中,每個所述第一索引的至少一個索引字段可使用一個所述第二索引。
[0007]根據本申請的另一方面,還提供了一種索引處理設備,包括:
[0008]第一裝置,用于獲取同一個數據庫對象的多個第一索引,其中,每個所述第一索引對應于所述數據庫對象的單條數據操作記錄;
[0009]第二裝置,用于合并所述多個第一索引以獲得所述數據庫對象的一個或多個第二索引,其中,每個所述第一索引的至少一個索引字段可使用一個所述第二索引。
[0010]與現有技術相比,本申請通過將數據庫表中多個針對單條數據庫操作語句的建議索引合并生成合并索引,從而針對數據庫表上的所有單條數據庫操作語句的建議索引做了統一的優化,不僅通過增加合并索引提升了數據庫查詢性能,也減少了單條數據庫操作語句建議索引的數量,節省了索引占用的空間,提高了索引的復用率。進一步地,本申請還通過設定索引效率閾值來引導索引的合并處理,在有效減少索引建議數量的同時,也使得合并索引對數據庫查詢性能的提升與單條語句索引建議相當。
【附圖說明】
[0011]通過閱讀參照以下附圖所作的對非限制性實施例所作的詳細描述,本申請的其它特征、目的和優點將會變得更明顯:
[0012]圖1示出根據本申請一個方面的一種索引處理的設備示意圖;
[0013]圖2示出根據本申請一個優選實施例的一種索引處理的設備示意圖;
[0014]圖3示出根據本申請另一個方面的一種索引處理的方法流程圖;
[0015]圖4示出根據本申請一個優選實施例的一種索引處理的方法流程圖。
[0016]附圖中相同或相似的附圖標記代表相同或相似的部件。
【具體實施方式】
[0017]下面結合附圖對本申請作進一步詳細描述。
[0018]在本申請一個典型的配置中,終端、服務網絡的設備和可信方均包括一個或多個處理器(CPU)、輸入/輸出接口、網絡接口和內存。
[0019]內存可能包括計算機可讀介質中的非永久性存儲器,隨機存取存儲器(RAM)和/或非易失性內存等形式,如只讀存儲器(ROM)或閃存(flash RAM)。內存是計算機可讀介質的示例。
[0020]計算機可讀介質包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術來實現信息存儲。信息可以是計算機可讀指令、數據結構、程序的模塊或其他數據。計算機的存儲介質的例子包括,但不限于相變內存(PRAM)、靜態隨機存取存儲器(SRAM)、動態隨機存取存儲器(DRAM)、其他類型的隨機存取存儲器(RAM)、只讀存儲器(ROM)、電可擦除可編程只讀存儲器(EEPROM)、快閃記憶體或其他內存技術、只讀光盤只讀存儲器(CD-ROM)、數字多功能光盤(DVD)或其他光學存儲、磁盒式磁帶,磁帶磁盤存儲或其他磁性存儲設備或任何其他非傳輸介質,可用于存儲可以被計算設備訪問的信息。按照本文中的界定,計算機可讀介質不包括非暫存電腦可讀媒體(transitory media),如調制的數據信號和載波。
[0021]圖1示出根據本申請一個方面的一種索引處理的設備示意圖。索引處理設備I包括第一裝置101和第二裝置102.
[0022]其中,第一裝置獲取同一個數據庫對象的多個第一索引,其中,每個所述第一索引對應于所述數據庫對象的單條數據操作記錄;第二裝置合并所述多個第一索引以獲得所述數據庫對象的一個或多個第二索引,其中,每個所述第一索引的至少一個索引字段可使用一個所述第二索引。
[0023]具體地,索引處理設備I的第一裝置101獲取同一個數據庫對象的多個第一索引,其中每個第一索引對應于所述數據庫對象的單條數據操作記錄。在此,所述多個第一索引來自于同一個數據庫對象。優選地,所述多個第一索引來自于同一個數據庫中的同一張表。所述第一索引對應于數據庫表中的單條數據操作記錄,優選地,所述單條數據操作記錄,包括單條SQL查詢語句,通常由DML來定義。進一步,優選地,采用根據where條件等值查詢字段加入索引字段候選字段的方法建立第一索引。例如,查詢時使用語句:select*fr0mtestTable where a = I,這是針對數據庫表的一條查詢語句,此時,可以依據所述查詢語句創建一個簡單的索引:Create index testTable_a ON testTable (a)。又如,若查詢條件不止一個,如:select*from testTable where a = land b = 2,則依據所述查詢語句創建一個多重索引:Create index testTable_a_b ON testTable (a, b)。再如,若查詢條件有層級或邏輯關系時,可以將查詢條件表示成樹狀關系,并根據樹形結構給出相應的索引,如查詢語句為:select*from testTable where a = land b = 2and c = 3or d = 4or e = 5,在此,可以基于運算操作符(如=,and, or)和運算操作數(如a, b, c, d, e, I, 2,3,4,5)的優先級別建立樹形結構,進而得出在如下三組列上創建3條索引:(a,b,c),(d),(e),所述三條索引分別都可以滿足所述查詢條件。在此,進一步由于索引上每一列的區分度不同,還可以通過列的區分度的計算比較決定以該列創建索引的可選度,或者依據列的區分度的計算比較創建出索引上效率較高的列排列組合,使區分度較好的字段排列在字段組合前面,例如,上述創建的索引(a,b,c)中,若三個字段的區分度排序為b,c,a,則可以得到更為準確的索引(b,c, a)。進一步,優選地,若所述單條數據操作記錄所對應的第一索引存在多個,則會選取其中索引效果最佳的第一索引作為參與到后續合并運算中的所述第一索引。
[0024]本領域技術人員應能理解,上述采用根據where條件等值查詢字段加入索引字段候選字段的方法建立第一索引僅為舉例,其他方法如可適用本申請,也應包含在本申請的保護范圍以內,并在此以引用方式包含于此。
[0025]接著,索引處理設備I的第二裝置102合并所述多個第一索引以獲得所述數據庫對象的一個或多個第二索引,其中,每個第一索引的至少一個索引字段可使用一個第二索弓I。所述多個第一索引均是對應于數據庫表上的單條數據操作記錄。即每一條第一索引服務于特定的單條數據操作記錄,多數情況下,不能被其他的單條數據操作記錄所用,例如,在一個數據庫表上存在多條所述第一索引idxl (a, b, c, d), idx2 (a, c, d), idx3 (a, b, d),idx4 (a, d), idx5 (b, d),每一條第一索引對應于一條相應的查詢語句。對所述多個第一索引進行合并算法,可以得到一條或者多條合并索引,即為第二索引,如,針對上述多個第一索引得到第二索引ind(d,a)和ind(b,d)。有時,利用一條第二索引就可以查詢到所有第一索引對應的數據,有時,則需要多條第二索引才能滿足覆蓋所有第一索引的查詢范圍。在此,所得到的一個或多個第二索引要滿足,每個第一索引的至少一個字段能夠被一個第二索引的字段所包含。如,上述第一索引idx2(a,c, d),有三個字段,則至少有一個字段可以使用所得到的至少一個第二索引來進行查詢,本例中,得到的第二索引是ind(d,a)和ind(b,d),其中ind(d,a)包含了 idx2(a,c, d)中的兩個字段a和d,同樣的,其他第一索引應都能夠滿足這一條件。此處,這一條件的限定保證了通過所生成的一個或多個第二索引能夠查詢到原先多個第一索引所查詢的所有的數據,從而使得第二索引在性能上能與第一索引持平,使得索引合并后,以產出的2個合并索引能夠完成原先5個索引所能做到的事情。
[0026]在此,索引處理設備I通過第一裝置101獲取統一數據庫對象的多個第一索引,并通過第二裝置將所述多個第一索引合并為所述數據庫對象的一個或多個第二索引,從而對數據庫表上的所有查詢語句做了統一的優化,使得數據庫表上的索引數量大大減少,以較少的合并索引完成以前較多針對單條數據庫操作語句的建議索引才能完成的查詢任務,減少了不必要的索引,節省了索引占用的空間,提高了索引的復用率,并通過增加合并索引提升了數據庫查詢性能。
[0027]在一個優選實施例中,所述索引處理設備I的第二裝置102根據所述多個第一索引確定優選索引字段,并根據所述優選索引字段對所述多個第一索引中該優選索引字段所覆蓋的第一索引進行合并處理,以獲得所述數據庫對象的一個或多個第二索引;對所述多個第一索引中未被該優選索引字段覆蓋的第一索引進行合并處理,以獲得所述數據庫對象的一個或多個第二索引,直至每個第一索引的至少一個索引字段可使用一個第二索引。
[0028]具體地,通過所述索引處理設備I的第一裝置101獲得了同一個數據對象的多個第一索引,對所述多個第一索引進行合并運算生成第二索引首先要確定優選索引字段,再以所述優選索引字段作為所述第二索引的字段生成相應的第二索引。優選索引字段是基于已有的各個第一索引中的各個字段確定出來的,主要是先設定一定的字段選擇標準對所述多個第一索引中的各個字段進行比較選擇,然后通過字段判斷標準對所選出的優選字段進行判斷,進而確定最終的優選索引字段。例如,所述字段選擇標準包括,通過對所述多個第一索引的各個字段的頻次進行排序,取頻次最高的字段作為優選索引字段,也包括,列出所述多個第一索引的各個字段,取字段區分度最高的字段作為優選索引字段。多種字段選擇標準可以配合使用,當一種選擇標準無法確定優選的索引字段時,可以引入第二種選擇標準對無法確定的索引字段繼續進一步選擇,直至選出優選索引字段。例如,有多個第一索引cl, c2, c3, c4, c5使用選擇標準A多個第一索引的各個字段進行比較,得到字段a和b都符合標準A,此時,可以引入標準B,對所述符合標準A的字段a和b再次進行比較,若判斷得出字段a符合標準B,則字段a就是所述優選索引字段。進而,對于依照字段選擇標準選擇出的優選索引字段進行判
當前第1頁1 2 3 4 5 
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
韩国伦理电影