TWI526857B - The database acceleration method is used to calculate the index value and the hybrid layer cache - Google Patents
The database acceleration method is used to calculate the index value and the hybrid layer cache Download PDFInfo
- Publication number
- TWI526857B TWI526857B TW103138558A TW103138558A TWI526857B TW I526857 B TWI526857 B TW I526857B TW 103138558 A TW103138558 A TW 103138558A TW 103138558 A TW103138558 A TW 103138558A TW I526857 B TWI526857 B TW I526857B
- Authority
- TW
- Taiwan
- Prior art keywords
- cache
- database
- record
- index value
- field
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
- G06F16/24549—Run-time optimisation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
本發明係有關於一種透過運算索引值與混合式層式快取的資料庫加速方法,尤其是指一種將複數欄位條件混合運算為索引值,以於查詢進行時透過索引值快速取得符合欄位條件之檔案記錄,另可透過記憶體或資料表建立金字塔狀多層式快取,以於查詢進行時優先由各快取層查找曾進行查詢之欄位條件(或索引值),而加速查詢進行之方法。
結構化查詢語言(structured query language,SQL)是一種快捷方便的程式語言,可以讓使用者利用簡單的指令式對關聯式資料庫(relational database)系統內的資料進行各種操作,雖然SQL沒有圖形化的介面,但具有不同底層結構的關聯式資料庫系統可以共用SQL語言作為資料登錄與管理的介面,例如Microsoft Access、Microsoft SQL Server以及Oracle等資料庫系統中,除了以物件連結與內嵌(object linking and embedded,OLE)機制將圖檔、聲音等不經編譯插入資料庫的OLE物件,所有資料庫內的資料都會被編譯,並且依賴SQL指令進行各種資料操作。
資料庫結構的最上層由資料表構成,一個資料庫內可以有多張資料表,顧名思義,資料表就是存放資料的表單,是由多筆記錄匯集而成,每筆記錄則由一群具有關聯性的欄位組合而成,每個欄位分別存放著一筆資料,這些資料依循著一定的結構標準記錄各種訊息,例如文字、數字、日期或者布林值,以描述各筆記錄的性質。
當使用者在資料庫內以多個欄位條件進行查詢時,資料庫必需進行多次欄位條件的比對以得到符合使用者指定欄位條件之資料記錄,進行多次欄位條件的比對需要耗用相當高的資料庫效能,而降低查詢的效率。
有鑑於此,本發明人提出一種建立資料庫的方法,利用演算法運算多個欄位條件產生索引值,例如以訊息摘要演算法第五版(message-digest algorithm 5,MD5)等雜湊演算法運算各欄位條件得到通用唯一識別碼(universally unique identifier,UUID)後將UUID作為索引值,這個運算得到的索引值可以作為檔案記錄的新欄位資料,查詢時利用相同的演算法由所輸入的欄位條件運算出索引值,再由索引值查找資料庫內已與索引值建立關聯性之檔案記錄可以加速對資料庫內多個資料表間的關聯,並且省下分別比對多個欄位的效能及時間。
此外,本發明中還提出一種建立資料庫的方法,將進行過的各次查詢中所使用的欄位條件以及符合欄位條件的檔案記錄作為快取記錄,分別儲存在資料儲存量不同的多個快取層中,以相同的欄位條件再次進行查詢時可從快取層中調取快取記錄而縮短查詢時間,並且,在多個快取層中查找快取記錄時,由資料儲存量最小的快取層依序查找至資料儲存量最大的快取層(金字塔狀多層快取),配合適當之快取記錄取代機制,例如巡迴式佇列(round-robin queue)演算法、最久未用(least recently used,LRU)演算法、最少使用(least frequently used,LFU)演算法等,將查詢次數較頻繁或查詢時間較接近之快取記錄安排儲存於資料儲存量較小的快取層,可提高調取快取記錄的效率。
為了避免對快取記錄進行取代時出現競賽情況(racing condition),本發明也可以配合總體鎖定(global lock)或個別鎖定(individaul lock)的技術鎖定儲存在快取層內的快取記錄,以妥善分配運用快取層的資料儲存量,總體鎖定在操作上較為簡單但整體運行效率較差,個別鎖定在操作上較為複雜但整體運行效率較高。
本發明之主要目的,在於提供一種建立資料庫之方法,將複數欄位條件混合運算產生索引值,以索引值查找符合欄位條件之檔案記錄,有助於加快由資料庫中查找符合欄位條件之檔案記錄之速度。
本發明之次要目的,在於提供一種於資料庫內進行查詢之方法,將進行查詢時輸入之複數欄位條件混合運算為索引值,以於已將索引值與符合欄位條件之檔案記錄建立關聯性之資料庫內快速查找符合欄位條件之檔案記錄,可節省比對複數欄位條件所需之時間和效能。
本發明之另一目的,在於提供一種建立資料庫之方法,將曾經進行之查詢中所輸入之欄位條件與符合欄位條件之檔案記錄作為快取記錄存放於金字塔狀多層式快取中,可快速地由資料庫中調取符合欄位條件之檔案記錄。
本發明之又一目的,在於提供一種於資料庫內進行查詢之方法,於存放於金字塔狀多層式快取中調取作為快取記錄之曾經進行之查詢結果時,由資料儲存量較小之快取層查找至資料儲存量較大之快取層,可節省由資料庫中調取查詢結果所需之效能。
為了達到上述所指稱之目的與功效,本發明揭示了一種建立資料庫之方法,於建立一資料庫時,利用一演算法運算複數欄位條件以得到一索引值,並將該資料庫內符合該些欄位條件之至少一檔案記錄關聯於該索引值,該索引值可作為該(些)檔案記錄之一新增欄位。
本發明另揭示了一種於資料庫內進行查詢之方法,適用於以前述方法建立之一資料庫,使用者輸入複數欄位條件以於該資料庫內進行查詢時,利用與前述方法相同之一演算法運算所輸入之該些欄位條件而得到一索引值,透過該索引值取得該資料庫內關聯於該索引值(即符合該些欄位條件)之至少一檔案記錄。
本發明又揭示了一種建立資料庫之方法,於建立一資料庫時,建立一第一快取層與資料儲存量大於該第一快取層之一第二快取層,並將曾進行過之複數查詢記錄(每一查詢記錄包含複數欄位條件以及符合該些條件之至少一檔案記錄)作為複數快取記錄分別儲存於該第一快取層或該第二快取層。
本發明再揭示了一種於資料庫內進行查詢之方法,適用於以前述方法建立之一資料庫,使用者於該資料庫內輸入複數欄位條件以進行查詢時,該資料庫優先調取對應該些欄位條件之一快取記錄,並優先由資料儲存量最小之一第一快取層查找該快取記錄,若該快取記錄並未儲存於該第一快取層,再於資料儲存量較該第一快取層大之一第二快取層查找該快取記錄。
1‧‧‧資料庫
100‧‧‧第一檔案記錄
102‧‧‧第二檔案記錄
104‧‧‧第三檔案記錄
106‧‧‧第四檔案記錄
120‧‧‧第一索引值
122‧‧‧第二索引值
124‧‧‧第三索引值
126‧‧‧第四索引值
20‧‧‧第一查詢欄位
200‧‧‧第一欄位條件
202‧‧‧第二欄位條件
22‧‧‧第二查詢欄位
220‧‧‧第三欄位條件
222‧‧‧第四欄位條件
30‧‧‧第一快取層
300‧‧‧第一快取記錄
32‧‧‧第二快取層
320‧‧‧第二快取記錄
322‧‧‧第三快取記錄
100‧‧‧第一檔案記錄
102‧‧‧第二檔案記錄
104‧‧‧第三檔案記錄
106‧‧‧第四檔案記錄
120‧‧‧第一索引值
122‧‧‧第二索引值
124‧‧‧第三索引值
126‧‧‧第四索引值
20‧‧‧第一查詢欄位
200‧‧‧第一欄位條件
202‧‧‧第二欄位條件
22‧‧‧第二查詢欄位
220‧‧‧第三欄位條件
222‧‧‧第四欄位條件
30‧‧‧第一快取層
300‧‧‧第一快取記錄
32‧‧‧第二快取層
320‧‧‧第二快取記錄
322‧‧‧第三快取記錄
第一A圖:其係為本發明一較佳實施例之建立資料庫之步驟流程圖;
第一B圖:其係為本發明一較佳實施例之資料庫結構示意圖;
第一C圖:其係為本發明一較佳實施例之於資料庫內進行查詢之步驟流程圖;
第二A圖:其係為本發明另一較佳實施例之建立資料庫之步驟流程圖;
第二B圖:其係為本發明另一較佳實施例之資料庫結構示意圖;
第二C圖:其係為本發明另一較佳實施例之於資料庫內進行查詢之步驟流程圖;及
第三圖:其係為本發明又一較佳實施例之資料庫結構示意圖。
為使 貴審查委員對本發明之特徵及所達成之功效有更進一步之瞭解與認識,謹佐以較佳之實施例及配合詳細之說明,說明如後:
本發明係一種透過運算索引值與混合式層式快取的資料庫加速方法,其特色有二:其一為建立資料庫時預先透過演算法將複數欄位條件混合運算產生索引值,並將索引值與符合該些欄位條件之檔案記錄建立關聯,因此,以複數欄位條件於資料庫內進行查詢時,利用相同之演算法運算所輸入之欄位條件得出索引值,即可藉由索引值快速查找到符合輸入之欄位條件之檔案記錄,而可節省比對複數欄位條件所需之時間和效能;其二為建立資料儲存量不同且由資料儲存量較小之快取層優先查找快取記錄之金字塔狀多層式快取,將曾進行之查詢中輸入之欄位條件與符合之檔案記錄作為快取記錄儲存於快取層中,配合適當之快取記錄取代及鎖定機制,可優先查找較常進行或最近進行之快取記錄,而加快由資料庫調取曾進行之查詢結果之速度。
首先請參閱第一A圖、第一B圖以及第一C圖,其係為本發明第一實施例之建立資料庫之步驟流程圖、資料庫結構示意圖以及於資料庫內進行查詢之步驟流程圖;如第一A圖所示,本發明之建立資料庫之方法之主要步驟包含:
步驟S10:利用演算法運算欄位條件以得到索引值;及
步驟S12:將資料庫內符合欄位條件之檔案記錄關聯於該索引值。
如第一B圖所示,利用本發明之建立資料庫之方法所建立之一資料庫1中包含複數檔案記錄:一第一檔案記錄100、一第二檔案記錄102、一第三檔案記錄104以及一第四檔案記錄106,該些檔案記錄可透過各別輸入一第一查詢欄位20與一第二查詢欄位22之欄位條件進行查詢。其中,該第一查詢欄位20可輸入一第一欄位條件200或一第二欄位條件202,該第二查詢欄位22可輸入一第三欄位條件220或一第四欄位條件222。
步驟S10中,透過一演算法,可將該第一欄位條件200與該第三欄位條件220混合運算為一第一索引值120、將該第一欄位條件200與該第四欄位條件222混合運算為一第二索引值122、將該第二欄位條件202與該第三欄位條件220混合運算為一第三索引值124以及將該第二欄位條件202與該第四欄位條件222混合運算為一第四索引值126,該第一索引值120、該第二索引值122、該第三索引值124以及該第四索引值126亦包含於該資料庫1內。
其中,該演算法可為一雜湊演算法,例如一MD5演算法,透過該演算法運算所得之該些索引值,可各自為一通用唯一識別碼(UUID),透過該些UUID索引符合對應之該些查詢條件之該些檔案記錄。
步驟S12中,該第一檔案記錄100符合該第一欄位條件200與該第三欄位條件220而被關聯於該第一索引值120,該第二檔案記錄102符合該第一欄位條件200與該第四欄位條件222而被關聯於該第二索引值122,該第三檔案記錄104符合該第二欄位條件202與該第三欄位條件220而被關聯於該第三索引值124,該第四檔案記錄106符合該第二欄位條件202與該第四欄位條件222而被關聯於該第四索引值126,該些檔案記錄與該些索引值之關聯性皆記錄於該資料庫1內。
其中,該些索引值可分別作為符合對應之該些查詢條件之各檔案記錄之新欄位資料,以於查詢時比對各檔案記錄中儲存於此新欄位之索引值。
透過上述元件之設置以及步驟S10與步驟S12之實施,本發明之建立資料庫之方法可將各查詢欄位之欄位條件透過演算法混合運算為索引值,以索引符合欄位條件之檔案記錄,使得資料庫中原先需要對多個查詢欄位進行欄位條件比對才能夠得到之檔案記錄,可利用一個索引值索引得到,有助於加速之後於此資料庫中進行之多欄位條件查詢。
如第一C圖所示,本發明之於資料庫進行查詢之方法應用於以如第一A圖所示之建立資料庫之方法所建立之如第一B圖所示之該資料庫1,且其主要步驟包含:
步驟S14:輸入欄位條件以於資料庫內進行查詢;
步驟S16:利用演算法運算所輸入之欄位條件而得到索引值;及
步驟S18:列出資料庫內關聯於索引值之檔案記錄。
步驟S14中,分別於該第一查詢欄位20輸入該第一欄位條件200或該第二欄位條件202、於該第二查詢欄位22輸入該第三欄位條件220或該第四欄位條件222以於該資料庫1查詢符合所輸入之該些欄位條件之檔案記錄。
步驟S16中,透過與步驟S10中相同之該演算法,可將步驟S14中所輸入之該第一欄位條件200或該第二欄位條件202以及該第三欄位條件220或該第四欄位條件222混合運算而得到該第一索引值120、該第二索引值122、該第三索引值124或該第四索引值126。
步驟S18中,則依據步驟S16中運算所得之索引值,透過步驟S12中所建立之索引值與檔案記錄之關聯性,列出該資料庫1中符合步驟S14中所輸入之該些欄位條件之檔案記錄,而完成多欄位條件之查詢。
透過上述元件之設置以及步驟S14與步驟S18之實施,本發明之於資料庫內進行查詢之方法可將於各查詢欄位所輸入之欄位條件透過演算法混合運算為索引值,以透過索引值之索引,由資料庫中找出符合欄位條件之檔案記錄。如前所述,由於本發明之透過運算索引值與混合式層式快取的資料庫加速方法中將複數欄位條件混合運算得到索引值,原本進行多欄位條件查詢時需要分別對各查詢欄位進行欄位條件之比對才能夠得到查詢結果,透過本發明可利用一個索引值取代複數欄位條件索引得到查詢結果,因此可提升於資料庫中進行多欄位條件查詢之速度並降低進行多欄位條件查詢所耗用之效能。
請參閱第二A圖、第二B圖以及第二C圖,其係為本發明第二實施例之建立資料庫之步驟流程圖、資料庫結構示意圖以及於資料庫內進行查詢之步驟流程圖;如第二A圖所示,本發明之建立資料庫之方法之主要步驟包含:
步驟S20:建立第一快取層與第二快取層;及
步驟S22:將快取記錄分別儲存於第一快取層或第二快取層。
如第二B圖所示,利用本發明之建立資料庫之方法建立之一資料庫1具有一第一快取層30與一第二快取層32,其中該第二快取層32之資料儲存量大於該第一快取層30之資料儲存量,該第一快取層30內儲存有一第一快取記錄300,該第二快取層32內則儲存有一第二快取記錄320與一第三快取記錄322。
步驟S20中,建立該第一快取層30與該第二快取層32,其中該第一快取層30為一記憶體快取,該第二快取層32為該資料庫1之一資料表。
步驟S22被進行數次,而分別將該第一快取記錄300儲存於該第一快取層30、將該第二快取記錄320與一第三快取記錄322儲存於該第二快取層32。
本實施例中,該些快取記錄皆為曾經進行之多欄位查詢中使用之欄位條件與所查找得到之檔案記錄,如第二B圖所示,該資料庫1中包含複數檔案記錄:一第一檔案記錄100、一第二檔案記錄102、一第三檔案記錄104以及一第四檔案記錄106,該些檔案記錄可透過各別輸入一第一查詢欄位20與一第二查詢欄位22之欄位條件進行查詢。
其中一次多欄位查詢中,於該第一查詢欄位20輸入一第一欄位條件200並於該第二查詢欄位22輸入一第三欄位條件220,而於該資料庫1中查找到符合該第一欄位條件200與該第三欄位條件220之該第一檔案記錄100,並將該第一欄位條件200、該第三欄位條件220以及該第一檔案記錄100之關聯性作為該第一快取記錄300儲存於該第一快取層30內。
另一次多欄位查詢中,於該第一查詢欄位20輸入該第一欄位條件200並於該第二查詢欄位22輸入一第四欄位條件222,而於該資料庫1中查找到符合該第一欄位條件200與該第四欄位條件222之該第二檔案記錄102,並將該第一欄位條件200、該第四欄位條件222以及該第二檔案記錄102之關聯性作為該第二快取記錄320儲存於該第二快取層32內。
又一次多欄位查詢中,於該第一查詢欄位20輸入一第二欄位條件202並於該第二查詢欄位22輸入該第三欄位條件220,而於該資料庫1中查找到符合該第二欄位條件202與該第三欄位條件220之該第三檔案記錄104,並將該第二欄位條件202、該第三欄位條件220以及該第三檔案記錄104之關聯性作為該第三快取記錄322儲存於該第二快取層32內。
透過上述元件之設置以及步驟S20與步驟S22之實施,本發明之建立資料庫之方法可將曾進行之多欄位條件查詢中使用之欄位條件與查找到之檔案記錄作為快取記錄記錄於所建立之各快取層中,使得再次進行相同欄位條件之多欄位條件查詢時,可由快取層中調取快取記錄,而快速地得到多欄位條件查詢之結果。
如第二C圖所示,本發明之於資料庫進行查詢之方法應用於以如第二A圖所示之建立資料庫之方法所建立之如第二B圖所示之該資料庫1,且其主要步驟包含:
步驟S24:調取快取記錄;
步驟S26:於第一快取層查找快取記錄;及
步驟S28:於第二快取層查找快取記錄。
步驟S24中,於該資料庫1進行曾進行之查詢,即相當於由該第一快取層30或該第二快取層32調取一快取記錄,快取記錄中包含與本次查詢相同之先前查詢所使用之欄位條件以及符合欄位條件之檔案記錄。
如前所述,若輸入該第一欄位條件200與該第三欄位條件220進行查詢,即調取該第一快取記錄300;若輸入該第一欄位條件200與該第四欄位條件222進行查詢,則調取該第二快取記錄320;而若輸入該第二欄位條件202與該第三欄位條件220進行查詢,調取該第三快取記錄322。
本發明之於資料庫內進行查詢之方法中,係依資料儲存量之大小,依序由資料儲存量最小之快取層至資料儲存量最大之快取層中查找快取記錄,因此步驟S26中,首先由資料儲存量較小之該第一快取層30查找步驟S24中調取之快取記錄。
若以該第一欄位條件200與該第三欄位條件220進行查詢而調取該第一快取記錄300,於步驟S26中即可於該第一快取層中查找到該第一快取記錄300,並依據該第一快取記錄300,列出該第一檔案記錄100作為此次多欄位條件查詢之結果。
而若以該第一欄位條件200與該第四欄位條件222進行查詢而調取該第二快取記錄320或以該第二欄位條件202與該第三欄位條件220進行查詢而調取該第三快取記錄322,由於該第二快取記錄320與該第三快取記錄322不儲存於該第一快取層30,於該第一快取層無法查找到該第二快取記錄320或該第三快取記錄322,此時必須進行步驟S28,於該第二快取層32中查找步驟S24中調取之快取記錄,並依據該第二快取記錄320或該第三快取記錄322,列出該第二檔案記錄102或該第三檔案記錄104作為此次多欄位條件查詢之結果。
透過上述元件之設置以及步驟S24至步驟S28之實施,本發明之於資料庫內進行查詢之方法可將曾進行之多欄位條件查詢中使用之欄位條件與查找到之檔案記錄作為快取記錄記錄於所建立之各快取層中,並優先由資料儲存量最小之快取層查找快取記錄,不僅可以透過快取記錄快速地得到多欄位條件查詢之結果,配合將查詢次數較頻繁或查詢時間較接近之多欄位查詢安排儲存於資料儲存量較小之快取層內,可更進一步節省查找快取所需之時間。
此外,由於各快取層之資料儲存量皆為固定,因此必須使用適當之快取記錄取代機制以更新儲存於快取層內之快取記錄,例如巡迴式佇列演算法、最久未用(LRU)演算法、最少使用(LFU)演算法等取代機制,以維持將較常進行或較近進行之查詢結果快取記錄安排儲存於資料儲存量較小之快取層之安排。另,為避免對快取記錄進行取代時出現競賽情況而造成錯誤之快取記錄取代結果,本發明可利用總體鎖定或個別鎖定之技術,配合取代快取記錄之動作鎖定不應被取代之快取記錄,以避免錯誤發生。
請參閱第三圖,其係為本發明第三實施例之資料庫結構示意圖;如圖所示,同時利用本發明揭露之兩種建立資料庫之方法,可建立如第三圖所示之一資料庫1,該資料庫1中包含複數檔案記錄:一第一檔案記錄100、一第二檔案記錄102、一第三檔案記錄104以及一第四檔案記錄106,該資料庫1並具有一第一快取層30與一第二快取層32,且該第二快取層32之資料儲存量大於該第一快取層30。
一第一查詢欄位20可輸入一第一欄位條件200或一第二欄位條件202,一第二查詢欄位22可輸入一第三欄位條件220或一第四欄位條件222,該資料庫1中透過一演算法運算該些欄位條件而得到複數索引值,該些索引值並分別被關聯於符合該些欄位條件之檔案記錄。
該第一欄位條件200與該第三欄位條件220經該演算法得到一第一索引值120,該第一索引值120並被關聯於符合該第一欄位條件200與該第三欄位條件220之該第一檔案記錄100;該第一欄位條件200與該第四欄位條件222經該演算法得到一第二索引值122,該第二索引值122並被關聯於符合該第一欄位條件200與該第四欄位條件222之該第二檔案記錄102;該第二欄位條件202與該第三欄位條件220經該演算法得到一第三索引值124,該第三索引值124並被關聯於符合該第二欄位條件202與該第三欄位條件220之該第三檔案記錄104;該第二欄位條件202與該第四欄位條件222經該演算法得到一第四索引值126,該第四索引值126並被關聯於符合該第二欄位條件202與該第四欄位條件222之該第四檔案記錄106。
曾有以該第一欄位條件200與該第三欄位條件220進行之查詢,而使由該第一欄位條件200與該第三欄位條件220運算所得之該第一索引值120與關聯於該第一索引值120之該第一檔案記錄100作為一第一快取記錄300儲存於該第一快取層30;曾有以該第一欄位條件200與該第四欄位條件222進行之查詢,而使由該第一欄位條件200與該第四欄位條件222運算所得之該第二索引值122與關聯於該第二索引值122之該第二檔案記錄102作為一第二快取記錄320儲存於該第二快取層32;曾有以該第二欄位條件202與該第三欄位條件220進行之查詢,而使由該第二欄位條件202與該第三欄位條件220運算所得之該第三索引值124與關聯於該第三索引值124之該第三檔案記錄104作為一第三快取記錄322儲存於該第二快取層32。
於本實施例中所建立之該資料庫1進行查詢時,將使用之各欄位條件經由該演算法混合運算得到索引值,並由資料量最小之快取層中查找記錄有此索引值之快取記錄,並由快取記錄中取得對應此索引值之檔案記錄,每次查詢之進行將新增快取記錄或改變快取記錄之儲存位置,使得較常進行或較近進行之查詢之快取記錄較容易被查找到,進而優化資料庫查詢之效能。
綜上所述,本發明之透過運算索引值與混合式層式快取的資料庫加速方法中,於建立資料庫時即利用演算法運算複數欄位條件產生索引值,並將索引值關聯至符合欄位條件之檔案記錄,使得以複數欄位條件進行查詢時,可透過索引值快速取得符合欄位條件之檔案記錄,另,本發明可於建立資料庫時建立複數快取層(金字塔狀多層快取),將曾進行查詢之欄位條件與查詢到之檔案記錄做為快取記錄存放於快取層中,進行查詢時由資料儲存量最小之快取層開始查找快取記錄,搭配將最常取用或最近建立之快取記錄優先存放於資料儲存量最小之快取層等方式,有助於減少調取快取資料所耗用之效能,並縮短進行查詢所需之時間。
惟以上所述者,僅為本發明之較佳實施例而已,並非用來限定本發明實施之範圍,舉凡依本發明申請專利範圍所述之特徵及精神所為之均等變化與修飾,均應包括於本發明之申請專利範圍內。
1‧‧‧資料庫
100‧‧‧第一檔案記錄
102‧‧‧第二檔案記錄
104‧‧‧第三檔案記錄
106‧‧‧第四檔案記錄
120‧‧‧第一索引值
122‧‧‧第二索引值
124‧‧‧第三索引值
126‧‧‧第四索引值
20‧‧‧第一查詢欄位
200‧‧‧第一欄位條件
202‧‧‧第二欄位條件
22‧‧‧第二查詢欄位
220‧‧‧第三欄位條件
222‧‧‧第四欄位條件
30‧‧‧第一快取層
300‧‧‧第一快取記錄
32‧‧‧第二快取層
320‧‧‧第二快取記錄
322‧‧‧第三快取記錄
Claims (16)
- 【第1項】一種建立資料庫之方法,其包含:
利用一演算法運算複數欄位條件以得到一索引值;以及
將一資料庫內符合該些欄位條件之至少一檔案記錄關聯於該索引值。 - 【第2項】如申請專利範圍第1項所述之建立資料庫之方法,其中該演算法係為一雜湊演算法。
- 【第3項】如申請專利範圍第2項所述之建立資料庫之方法,其中該雜湊演算法係為一訊息摘要演算法第五版(MD5)演算法。
- 【第4項】如申請專利範圍第1項所述之建立資料庫之方法,其中該索引值係為一通用唯一識別碼(UUID)。
- 【第5項】一種於資料庫內進行查詢之方法,其包含:
輸入複數欄位條件以於一資料庫內進行查詢;
利用一演算法運算所輸入之該些欄位條件而得到一索引值;以及
列出該資料庫內關聯於該索引值之至少一檔案記錄。 - 【第6項】如申請專利範圍第5項所述之於資料庫內進行查詢之方法,其中該演算法係為一雜湊演算法。
- 【第7項】如申請專利範圍第6項所述之建立資料庫之方法,其中該雜湊演算法係為一訊息摘要演算法第五版(MD5)演算法。
- 【第8項】如申請專利範圍第5項所述之於資料庫內進行查詢之方法,其中該索引值係為一通用唯一識別碼(UUID)。
- 【第9項】一種建立資料庫之方法,其包含:
建立一第一快取層與一第二快取層,該第二快取層之資料儲存量係大於該第一快取層之資料儲存量;以及
將複數快取記錄分別儲存於該第一快取層或該第二快取層。 - 【第10項】如申請專利範圍第9項所述之建立資料庫之方法,其中該第一快取層或該第二快取層係為一記憶體快取或一資料表。
- 【第11項】如申請專利範圍第9項所述之建立資料庫之方法,其中該快取記錄係為複數欄位條件與符合該些欄位條件之至少一檔案記錄。
- 【第12項】如申請專利範圍第11項所述之建立資料庫之方法,其中該些欄位條件係經一演算法運算為一索引值。
- 【第13項】一種於資料庫內進行查詢之方法,其包含:
調取一快取記錄;
於一第一快取層查找該快取記錄;以及
若該快取記錄未儲存於該第一快取層,於一第二快取層查找該快取記錄,該第二快取層之資料儲存量係大於該第一快取層之資料儲存量。 - 【第14項】如申請專利範圍第13項所述之於資料庫內進行查詢之方法,其中該第一快取層或該第二快取層係為一記憶體快取或一資料表。
- 【第15項】如申請專利範圍第13項所述之於資料庫內進行查詢之方法,其中該快取記錄係為複數欄位條件與符合該些欄位條件之至少一檔案記錄。
- 【第16項】如申請專利範圍第15項所述之於資料庫內進行查詢之方法,其中該些欄位條件係經一演算法運算為一索引值。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW103138558A TWI526857B (zh) | 2014-11-06 | 2014-11-06 | The database acceleration method is used to calculate the index value and the hybrid layer cache |
CN201510430114.4A CN105589915A (zh) | 2014-11-06 | 2015-07-21 | 透过运算索引值与混合式层式快取的数据库加速方法 |
US14/808,131 US20160132535A1 (en) | 2014-11-06 | 2015-07-24 | Acceleration method for database using index value operation and mixed-mode leveled cache |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW103138558A TWI526857B (zh) | 2014-11-06 | 2014-11-06 | The database acceleration method is used to calculate the index value and the hybrid layer cache |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI526857B true TWI526857B (zh) | 2016-03-21 |
TW201617936A TW201617936A (zh) | 2016-05-16 |
Family
ID=55912367
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW103138558A TWI526857B (zh) | 2014-11-06 | 2014-11-06 | The database acceleration method is used to calculate the index value and the hybrid layer cache |
Country Status (3)
Country | Link |
---|---|
US (1) | US20160132535A1 (zh) |
CN (1) | CN105589915A (zh) |
TW (1) | TWI526857B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108121618B (zh) * | 2016-11-28 | 2021-02-12 | 华为技术有限公司 | 一种修复数据的方法和装置 |
CN106557583B (zh) * | 2016-11-29 | 2020-07-03 | 用友网络科技股份有限公司 | 档案存储装置和档案存储方法 |
US11044513B2 (en) * | 2017-03-28 | 2021-06-22 | Turner Broadcasting System, Inc. | Platform for publishing graphics to air |
US11134049B2 (en) * | 2018-12-17 | 2021-09-28 | Braze, Inc. | Systems and methods for sending messages to users |
CN109918472A (zh) * | 2019-02-27 | 2019-06-21 | 北京百度网讯科技有限公司 | 存储和查询数据的方法、装置、设备和介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8484220B2 (en) * | 2007-03-06 | 2013-07-09 | Mcafee, Inc. | Clustered index with differentiated subfields |
CN100550019C (zh) * | 2007-03-22 | 2009-10-14 | 金蝶软件(中国)有限公司 | 面向对象的数据库访问方法及系统 |
CN103810212B (zh) * | 2012-11-14 | 2017-05-24 | 阿里巴巴集团控股有限公司 | 一种数据库索引的自动创建方法及系统 |
CN103853727B (zh) * | 2012-11-29 | 2018-07-31 | 深圳中兴力维技术有限公司 | 提高大数据量查询性能的方法及系统 |
CN103631910A (zh) * | 2013-11-26 | 2014-03-12 | 烽火通信科技股份有限公司 | 一种分布式数据库多列复合查询的系统及方法 |
CN107777056A (zh) * | 2017-11-10 | 2018-03-09 | 成都君硕睿智信息科技有限公司 | 一种用于远距离运输水果的防震物流箱 |
-
2014
- 2014-11-06 TW TW103138558A patent/TWI526857B/zh active
-
2015
- 2015-07-21 CN CN201510430114.4A patent/CN105589915A/zh active Pending
- 2015-07-24 US US14/808,131 patent/US20160132535A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
CN105589915A (zh) | 2016-05-18 |
TW201617936A (zh) | 2016-05-16 |
US20160132535A1 (en) | 2016-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI526857B (zh) | The database acceleration method is used to calculate the index value and the hybrid layer cache | |
US9639567B2 (en) | For all entries processing | |
US9898551B2 (en) | Fast row to page lookup of data table using capacity index | |
US10725987B2 (en) | Forced ordering of a dictionary storing row identifier values | |
US10042552B2 (en) | N-bit compressed versioned column data array for in-memory columnar stores | |
US10558495B2 (en) | Variable sized database dictionary block encoding | |
EP2843567B1 (en) | Computer-implemented method for improving query execution in relational databases normalized at level 4 and above | |
US9965504B2 (en) | Transient and persistent representation of a unified table metadata graph | |
US11176105B2 (en) | System and methods for providing a schema-less columnar data store | |
US6859808B1 (en) | Mapping logical row identifiers for primary B+tree-like structures to physical row identifiers | |
CN107368527B (zh) | 基于数据流的多属性索引方法 | |
US11789923B2 (en) | Compression units in an index block | |
US20140143501A1 (en) | Database search facility | |
US11567934B2 (en) | Consistent client-side caching for fine grained invalidations | |
US11681691B2 (en) | Presenting updated data using persisting views | |
CN101789027A (zh) | 一种基于dbms的元数据管理方法和元数据服务器 | |
CN104123356A (zh) | 一种大数据量下提高网页响应的方法 | |
US9208234B2 (en) | Database row access control | |
US8756246B2 (en) | Method and system for caching lexical mappings for RDF data | |
CN106777111B (zh) | 一种超大规模数据的时序检索索引系统及方法 | |
US20140258264A1 (en) | Management of searches in a database system | |
US8200673B2 (en) | System and method for on-demand indexing | |
CN107609091B (zh) | 一种跨库多表联合查询系统的实现方法 | |
JP5287071B2 (ja) | データベース管理システムおよびプログラム | |
Fang et al. | A comparison of multi-tenant data storage solutions for Software-as-a-Service |