Atitit.数据索引 的种类以及原理实现机制 索引常用的存储结构
Atitit.數(shù)據(jù)索引?的種類以及原理實(shí)現(xiàn)機(jī)制?索引常用的存儲(chǔ)結(jié)構(gòu)
?
?
1.?索引的分類1
1.1.?索引的類型??按查找方式分,兩種,分塊索引?vs編號(hào)索引1
1.2.?按索引與數(shù)據(jù)的查找順序可分為?正排與倒排索引1
1.3.?單列索引與多列索引2
1.4.?分區(qū)索引和全局索引?2
2.?索引建立,更新的流程使用觸發(fā)更新索引的事件2
3.?索引常用的存儲(chǔ)結(jié)構(gòu)?B樹文件?叫做“索引順序存取方法”(Indexed?Sequential?Access?Method),縮寫為ISAM。2
4.??Trie樹一般指字典樹?又稱單詞查找樹,Trie樹,是一種樹形結(jié)構(gòu),是一種哈希樹的變種。典型應(yīng)用是用于統(tǒng)計(jì),排序和保存大量的字符串(但不僅限于字符串),所以經(jīng)常被搜索引擎系統(tǒng)用于文本詞頻統(tǒng)計(jì)3
5.?索引文件的合并問題4
6.?參考4
?
?
?
1.?索引的分類
Uniq
全文索引
Norma
Hash?索引(編號(hào)索引)
l
?
?
1.1.?索引的類型??按查找方式分,兩種,分塊索引?vs編號(hào)索引
?
?
一種是分塊》分塊類型。。一種是不分塊,編號(hào)順序排列類型
?
1.2.?按索引與數(shù)據(jù)的查找順序可分為?正排與倒排索引
倒排索引
?
1.3.?單列索引與多列索引
?
1.4.?分區(qū)索引和全局索引?
?
作者::?綽號(hào):老哇的爪子?(?全名::Attilax?akbar?al?rapanui?阿提拉克斯?阿克巴?阿爾?拉帕努伊?)?漢字名:艾龍,??EMAIL:1466519819@qq.com
轉(zhuǎn)載請(qǐng)注明來(lái)源:?http://blog.csdn.net/attilax
?
2.?索引建立,更新的流程使用觸發(fā)更新索引的事件
1?大量數(shù)據(jù)插入的時(shí)候,考慮先刪除索引,然后重建索引。這樣做的缺點(diǎn)是業(yè)務(wù)不能同時(shí)進(jìn)行
?
說(shuō)明索引是類似與觸發(fā)器,每增加一條記錄觸發(fā)一次創(chuàng)建立索引的流程
?
?
3.?索引常用的存儲(chǔ)結(jié)構(gòu)?B樹文件?叫做“索引順序存取方法”(Indexed?Sequential?Access?Method),縮寫為ISAM。
?
?
所謂索引,就是以某個(gè)字段為關(guān)鍵字的B樹文件。假定有一張”雇員表”,包含了員工號(hào)(主鍵)和姓名兩個(gè)字段??梢詫?duì)姓名建立索引文件,該文件以B樹格式對(duì)姓名進(jìn)行儲(chǔ)存,每個(gè)姓名后面是其在數(shù)據(jù)庫(kù)中的位置(即第幾條記錄)。查找姓名的時(shí)候,先從索引中找到對(duì)應(yīng)第幾條記錄,然后再?gòu)谋砀裰凶x取。
這種索引查找方法,叫做“索引順序存取方法”(Indexed?Sequential?Access?Method),縮寫為ISAM。它已經(jīng)有多種實(shí)現(xiàn)(比如C-ISAM庫(kù)和D-ISAM庫(kù)),只要使用這些代碼庫(kù),就能自己寫一個(gè)最簡(jiǎn)單的數(shù)據(jù)庫(kù)。
4.??Trie樹一般指字典樹?又稱單詞查找樹,Trie樹,是一種樹形結(jié)構(gòu),是一種哈希樹的變種。典型應(yīng)用是用于統(tǒng)計(jì),排序和保存大量的字符串(但不僅限于字符串),所以經(jīng)常被搜索引擎系統(tǒng)用于文本詞頻統(tǒng)計(jì)
。它的優(yōu)點(diǎn)是:利用字符串的公共前綴來(lái)減少查詢時(shí)間,最大限度地減少無(wú)謂的字符串比較,查詢效率比哈希樹高。
Trie樹,又稱字典樹,單詞查找樹或者前綴樹,是一種用于快速檢索的多叉樹結(jié)構(gòu),如英文字母的字典樹是一個(gè)26叉樹,數(shù)字的字典樹是一個(gè)10叉樹。
Trie一詞來(lái)自retrieve,發(fā)音為/tri:/?“tree”,也有人讀為/tra?/?“try”。
Trie樹可以利用字符串的公共前綴來(lái)節(jié)約存儲(chǔ)空間。如下圖所示,該trie樹用10個(gè)節(jié)點(diǎn)保存了6個(gè)字符串tea,ten,to,in,inn,int:
在該trie樹中,字符串in,inn和int的公共前綴是“in”,因此可以只存儲(chǔ)一份“in”以節(jié)省空間。當(dāng)然,如果系統(tǒng)中存在大量字符串且這些字符串基本沒有公共前綴,則相應(yīng)的trie樹將非常消耗內(nèi)存,這也是trie樹的一個(gè)缺點(diǎn)。
Trie樹的基本性質(zhì)可以歸納為:
(1)根節(jié)點(diǎn)不包含字符,除根節(jié)點(diǎn)意外每個(gè)節(jié)點(diǎn)只包含一個(gè)字符。
(2)從根節(jié)點(diǎn)到某一個(gè)節(jié)點(diǎn),路徑上經(jīng)過(guò)的字符連接起來(lái),為該節(jié)點(diǎn)對(duì)應(yīng)的字符串。
(3)每個(gè)節(jié)點(diǎn)的所有子節(jié)點(diǎn)包含的字符串不相同。
?
?
5.?索引文件的合并問題
當(dāng)索引文件越來(lái)越大時(shí)候,就需要分布式存儲(chǔ)在多個(gè)增量索引文件上..到時(shí)合并或者不合并.....
或者使用2進(jìn)制方式增量存儲(chǔ)..
?
6.?參考
paip.索引的種類以及實(shí)現(xiàn)attilax?總結(jié)?-?attilax的專欄?-?博客頻道?-?CSDN.NET.htm
字典樹_百度百科.htm??(有代碼實(shí)現(xiàn)
?
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的Atitit.数据索引 的种类以及原理实现机制 索引常用的存储结构的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ZOJ 3829 贪心 思维题
- 下一篇: php无法加载Memcache缓存模块问