国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種數(shù)據(jù)庫(kù)索引查找方法、裝置及用戶終端與流程

      文檔序號(hào):11250964閱讀:601來(lái)源:國(guó)知局
      一種數(shù)據(jù)庫(kù)索引查找方法、裝置及用戶終端與流程

      本發(fā)明涉及計(jì)算機(jī)軟件技術(shù),尤其涉及數(shù)據(jù)庫(kù)查找技術(shù)。



      背景技術(shù):

      數(shù)據(jù)庫(kù)在使用like查詢的時(shí)候,尤其是sql數(shù)據(jù)庫(kù),前置%通配符(如:‘%abc’)將無(wú)法使用索引,會(huì)導(dǎo)致全表掃描,引起性能問(wèn)題。目前都是通過(guò)全文搜索解決這個(gè)問(wèn)題,全文搜索不但實(shí)施復(fù)雜,而且應(yīng)用程序開(kāi)發(fā)使用的很多orm不支持全文搜索語(yǔ)法,即使支持,使用起來(lái)也很麻煩。



      技術(shù)實(shí)現(xiàn)要素:

      為了克服現(xiàn)有技術(shù)的不足,本發(fā)明的目的之一在于提供一種數(shù)據(jù)庫(kù)索引查找方法,其能解決無(wú)法使用索引的問(wèn)題。

      本發(fā)明的目的之二在于提供一種數(shù)據(jù)庫(kù)索引查找裝置,其能解決無(wú)法使用索引的問(wèn)題。

      本發(fā)明的目的之三在于提供一種用戶終端,其能解決無(wú)法使用索引的問(wèn)題。

      為了實(shí)現(xiàn)上述目的之一,本發(fā)明所采用的技術(shù)方案如下:

      一種數(shù)據(jù)庫(kù)索引查找方法,其特征在于,包括以下步驟:

      接收查詢指令,所述查詢指令包括待查字符片段和查詢符;

      根據(jù)所述待查字符片段,從分片段數(shù)據(jù)存儲(chǔ)表中匹配出對(duì)應(yīng)的一個(gè)或多個(gè)字符片段,并根據(jù)所述字符片段對(duì)應(yīng)得到一個(gè)或多個(gè)主鍵;

      根據(jù)一個(gè)或多個(gè)所述主鍵,從源表中匹配出對(duì)應(yīng)的一條或多條源字段內(nèi)容的記錄;

      其中,所述分片段數(shù)據(jù)存儲(chǔ)表包括字符片段與主鍵的對(duì)應(yīng)關(guān)系;所述源表包括主鍵與源字段內(nèi)容的對(duì)應(yīng)關(guān)系;分片段數(shù)據(jù)存儲(chǔ)表中的多個(gè)字符片段由預(yù)設(shè)規(guī)則對(duì)每一個(gè)源字段內(nèi)容拆分得到,由同一個(gè)源字段內(nèi)容拆分得到的多個(gè)字符片段對(duì)應(yīng)關(guān)聯(lián)的主鍵相同。

      優(yōu)選的,所述查詢符為sql通配符。

      優(yōu)選的,所述查詢符連接在待查字符片段后。

      優(yōu)選的,所述數(shù)據(jù)庫(kù)為sql數(shù)據(jù)庫(kù)。

      優(yōu)選的,所述預(yù)設(shè)規(guī)則為從左到右或從右到左對(duì)源字段內(nèi)容中依次刪除一個(gè)字符,每刪除一次,得到對(duì)應(yīng)的一個(gè)字符片段。

      為了實(shí)現(xiàn)上述目的之二,本發(fā)明所采用的技術(shù)方案如下:

      一種數(shù)據(jù)庫(kù)索引查找裝置,其特征在于,包括以下模塊:

      接收模塊,用于接收查詢指令,所述查詢指令包括待查字符片段和查詢符;

      查詢模塊,用于根據(jù)所述待查字符片段,從分片段數(shù)據(jù)存儲(chǔ)表中匹配出對(duì)應(yīng)的一個(gè)或多個(gè)字符片段,并根據(jù)所述字符片段對(duì)應(yīng)得到一個(gè)或多個(gè)主鍵;

      匹配模塊,用于根據(jù)一個(gè)或多個(gè)所述主鍵,從源表中匹配出對(duì)應(yīng)的一條或多條源字段內(nèi)容的記錄;

      其中,所述分片段數(shù)據(jù)存儲(chǔ)表包括字符片段與主鍵的對(duì)應(yīng)關(guān)系;所述源表包括主鍵與源字段內(nèi)容的對(duì)應(yīng)關(guān)系;分片段數(shù)據(jù)存儲(chǔ)表中的多個(gè)字符片段由預(yù)設(shè)規(guī)則對(duì)每一個(gè)源字段內(nèi)容拆分得到,由同一個(gè)源字段內(nèi)容拆分得到的多個(gè)字符片段對(duì)應(yīng)關(guān)聯(lián)的主鍵相同。

      優(yōu)選的,所述查詢符連接在待查字符片段后。

      優(yōu)選的,所述數(shù)據(jù)庫(kù)為sql數(shù)據(jù)庫(kù)。

      優(yōu)選的,所述預(yù)設(shè)規(guī)則為從左到右或從右到左對(duì)源字段內(nèi)容中依次刪除一個(gè)字符,每刪除一次,得到對(duì)應(yīng)的一個(gè)字符片段。

      為了實(shí)現(xiàn)上述目的之三,本發(fā)明所采用的技術(shù)方案如下:

      一種用戶終端,其特征在于,包括:

      存儲(chǔ)器,用于存儲(chǔ)程序指令;

      處理器,用于運(yùn)行所述程序指令,以執(zhí)行以下步驟:

      接收查詢指令,所述查詢指令包括待查字符片段和查詢符;

      根據(jù)所述待查字符片段,從分片段數(shù)據(jù)存儲(chǔ)表中匹配出對(duì)應(yīng)的一個(gè)或多個(gè)字符片段,并根據(jù)所述字符片段對(duì)應(yīng)得到一個(gè)或多個(gè)主鍵;

      根據(jù)一個(gè)或多個(gè)所述主鍵,從源表中匹配出對(duì)應(yīng)的一條或多條源字段內(nèi)容的記錄;

      其中,所述分片段數(shù)據(jù)存儲(chǔ)表包括字符片段與主鍵的對(duì)應(yīng)關(guān)系;所述源表包括主鍵與源字段內(nèi)容的對(duì)應(yīng)關(guān)系;分片段數(shù)據(jù)存儲(chǔ)表中的多個(gè)字符片段由預(yù)設(shè)規(guī)則對(duì)每一個(gè)源字段內(nèi)容拆分得到,由同一個(gè)源字段內(nèi)容拆分得到的多個(gè)字符片段對(duì)應(yīng)關(guān)聯(lián)的主鍵相同。

      優(yōu)選的,所述查詢符為sql通配符。

      優(yōu)選的,所述查詢符連接在待查字符片段后。

      優(yōu)選的,所述數(shù)據(jù)庫(kù)為sql數(shù)據(jù)庫(kù)。

      優(yōu)選的,所述預(yù)設(shè)規(guī)則為從左到右或從右到左對(duì)源字段內(nèi)容中依次刪除一個(gè)字符,每刪除一次,得到對(duì)應(yīng)的一個(gè)字符片段。

      相比現(xiàn)有技術(shù),本發(fā)明的有益效果在于:

      通過(guò)把需要查找的數(shù)據(jù)(即源字段內(nèi)容)拆分為數(shù)據(jù)小片段(即字符片段),然后和源表關(guān)聯(lián),在查詢的時(shí)候通過(guò)后置通配符的方式,解決前置通配符模式使用like查詢導(dǎo)致全表掃描的問(wèn)題,提高查詢性能。

      附圖說(shuō)明

      圖1為本發(fā)明實(shí)施例一的數(shù)據(jù)庫(kù)索引查找方法的流程圖;

      圖2為本發(fā)明的預(yù)設(shè)規(guī)則的示意圖;

      圖3為本發(fā)明實(shí)施例二的數(shù)據(jù)庫(kù)索引查找裝置的結(jié)構(gòu)示意圖;

      圖4為本發(fā)明實(shí)施例三的用戶終端的結(jié)構(gòu)示意圖;

      圖5為本發(fā)明源表的示意圖;

      圖6為本發(fā)明分片段數(shù)據(jù)存儲(chǔ)表的示意圖;

      圖7為本發(fā)明執(zhí)行代碼后顯示的表單內(nèi)容示意圖。

      具體實(shí)施方式

      下面,結(jié)合附圖以及具體實(shí)施方式,對(duì)本發(fā)明做進(jìn)一步描述:

      實(shí)施例一

      如圖1所示,一種數(shù)據(jù)庫(kù)索引查找方法,其包括以下步驟:

      步驟s1、接收查詢指令,所述查詢指令包括待查字符片段和查詢符;

      步驟s2、根據(jù)所述待查字符片段,從分片段數(shù)據(jù)存儲(chǔ)表中匹配出對(duì)應(yīng)的一個(gè)或多個(gè)字符片段,并根據(jù)所述字符片段對(duì)應(yīng)得到一個(gè)或多個(gè)主鍵;

      步驟s3、根據(jù)一個(gè)或多個(gè)所述主鍵,從源表中匹配出對(duì)應(yīng)的一條或多條源字段內(nèi)容的記錄;

      步驟s4、將對(duì)應(yīng)的主鍵、匹配出來(lái)的源字段內(nèi)容和匹配出來(lái)的字符片段三者進(jìn)行對(duì)應(yīng)關(guān)聯(lián)顯示。

      其中,所述分片段數(shù)據(jù)存儲(chǔ)表包括字符片段與主鍵的對(duì)應(yīng)關(guān)系;所述源表包括主鍵與源字段內(nèi)容的對(duì)應(yīng)關(guān)系;分片段數(shù)據(jù)存儲(chǔ)表中的多個(gè)字符片段由預(yù)設(shè)規(guī)則對(duì)每一個(gè)源字段內(nèi)容拆分得到,由同一個(gè)源字段內(nèi)容拆分得到的多個(gè)字符片段對(duì)應(yīng)關(guān)聯(lián)的主鍵相同。

      本實(shí)施例的數(shù)據(jù)庫(kù)為sql數(shù)據(jù)庫(kù)。所述查詢符為sql通配符,sql通配符一般包括如表1所示。所述查詢符連接在待查字符片段后(如abc%)。

      表1

      本實(shí)施例采用后置通配符%的方式為例進(jìn)行索引檢索說(shuō)明。

      所述預(yù)設(shè)規(guī)則為從左到右或從右到左對(duì)源字段內(nèi)容中依次刪除一個(gè)字符,每刪除一次,得到對(duì)應(yīng)的一個(gè)字符片段。預(yù)設(shè)規(guī)則示例如圖2所示,以從左到右為例,對(duì)源字段內(nèi)容hudecovacrescent進(jìn)行拆分,圖2中每一行對(duì)應(yīng)一個(gè)字符片段,并存儲(chǔ)分片段數(shù)據(jù)存儲(chǔ)表中。

      實(shí)施例二

      如圖3所示,為與實(shí)施例一的方法流程一一對(duì)應(yīng)形成的虛擬裝置,即提供了一種數(shù)據(jù)庫(kù)索引查找裝置,其包括以下模塊:

      接收模塊,用于接收查詢指令,所述查詢指令包括待查字符片段和查詢符;

      查詢模塊,用于根據(jù)所述待查字符片段,從分片段數(shù)據(jù)存儲(chǔ)表中匹配出對(duì)應(yīng)的一個(gè)或多個(gè)字符片段,并根據(jù)所述字符片段對(duì)應(yīng)得到一個(gè)或多個(gè)主鍵;

      匹配模塊,用于根據(jù)一個(gè)或多個(gè)所述主鍵,從源表中匹配出對(duì)應(yīng)的一條或多條源字段內(nèi)容的記錄;

      關(guān)聯(lián)模塊,用于將對(duì)應(yīng)的主鍵、匹配出來(lái)的源字段內(nèi)容和匹配出來(lái)的字符片段三者進(jìn)行對(duì)應(yīng)關(guān)聯(lián)顯示。

      其中,所述分片段數(shù)據(jù)存儲(chǔ)表包括字符片段與主鍵的對(duì)應(yīng)關(guān)系;所述源表包括主鍵與源字段內(nèi)容的對(duì)應(yīng)關(guān)系;分片段數(shù)據(jù)存儲(chǔ)表中的多個(gè)字符片段由預(yù)設(shè)規(guī)則對(duì)每一個(gè)源字段內(nèi)容拆分得到,由同一個(gè)源字段內(nèi)容拆分得到的多個(gè)字符片段對(duì)應(yīng)關(guān)聯(lián)的主鍵相同。

      實(shí)施例三

      如圖4所示,為了實(shí)現(xiàn)實(shí)施例一的方法流程,提供了一種實(shí)體裝置,即一種用戶終端,其包括:

      存儲(chǔ)器,用于存儲(chǔ)程序指令;

      處理器,用于運(yùn)行所述程序指令,以執(zhí)行以下步驟:

      接收查詢指令,所述查詢指令包括待查字符片段和查詢符;

      根據(jù)所述待查字符片段,從分片段數(shù)據(jù)存儲(chǔ)表中匹配出對(duì)應(yīng)的一個(gè)或多個(gè)字符片段,并根據(jù)所述字符片段對(duì)應(yīng)得到一個(gè)或多個(gè)主鍵;

      根據(jù)一個(gè)或多個(gè)所述主鍵,從源表中匹配出對(duì)應(yīng)的一條或多條源字段內(nèi)容的記錄;

      將對(duì)應(yīng)的主鍵、匹配出來(lái)的源字段內(nèi)容和匹配出來(lái)的字符片段三者進(jìn)行對(duì)應(yīng)關(guān)聯(lián)顯示。

      其中,所述分片段數(shù)據(jù)存儲(chǔ)表包括字符片段與主鍵的對(duì)應(yīng)關(guān)系;所述源表包括主鍵與源字段內(nèi)容的對(duì)應(yīng)關(guān)系;分片段數(shù)據(jù)存儲(chǔ)表中的多個(gè)字符片段由預(yù)設(shè)規(guī)則對(duì)每一個(gè)源字段內(nèi)容拆分得到,由同一個(gè)源字段內(nèi)容拆分得到的多個(gè)字符片段對(duì)應(yīng)關(guān)聯(lián)的主鍵相同。

      下面,以實(shí)際的計(jì)算機(jī)程序代碼實(shí)現(xiàn)示例,對(duì)本發(fā)明進(jìn)行具體說(shuō)明。

      如圖5所示,查詢?cè)幢韀person].[address]中addressline1字段包含crescent待查字符片段的數(shù)據(jù)記錄,源表[person].[address]主鍵字段為addressid。

      如圖6所示,以源表[person].[address]的主鍵addressid1對(duì)應(yīng)的源字段內(nèi)容1970napact.進(jìn)行拆分為示例,得到分片段數(shù)據(jù)存儲(chǔ)表t_literalfragments。其他addressid對(duì)應(yīng)的源字段內(nèi)容也進(jìn)行同樣的拆分。其中,srcrefid為分片段數(shù)據(jù)存儲(chǔ)表t_literalfragments的主鍵字段,fragment為分片段數(shù)據(jù)存儲(chǔ)表t_literalfragments的字符片段字段。分片段數(shù)據(jù)存儲(chǔ)表t_literalfragments的主鍵與源表[person].[address]的主鍵對(duì)應(yīng)關(guān)聯(lián)。

      根據(jù)執(zhí)行以下代碼,得到如圖7所示表單。

      selecta.addressid,a.addressline1,b.fragment

      from[person].[address]asa

      innerjoint_literalfragmentsasb

      ona.addressid=b.srcrefid//源表主鍵與分片段數(shù)據(jù)存儲(chǔ)表主鍵對(duì)應(yīng)關(guān)聯(lián)

      andb.fragmentlike‘crescent%’//通過(guò)后置通配符%,在分片段數(shù)據(jù)存儲(chǔ)表的fragment字段中匹配含有crescent待查字符片段的數(shù)據(jù)記錄

      orderbya.addressid

      利用sql通過(guò)后置%通配符的方式使用like查詢可以使用索引的特點(diǎn),本實(shí)施例通過(guò)把需要使用前置%通配符查找的數(shù)據(jù)拆分為數(shù)據(jù)小片段,然后和源表關(guān)聯(lián),在查詢的時(shí)候通過(guò)后置%通配符的方式,解決前置%通配符模式使用like查詢導(dǎo)致全表掃描的問(wèn)題,提高查詢性能。

      對(duì)本領(lǐng)域的技術(shù)人員來(lái)說(shuō),可根據(jù)以上描述的技術(shù)方案以及構(gòu)思,做出其它各種相應(yīng)的改變以及形變,而所有的這些改變以及形變都應(yīng)該屬于本發(fā)明權(quán)利要求的保護(hù)范圍之內(nèi)。

      當(dāng)前第1頁(yè)1 2 
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1