溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

PostgreSQL DBA(52) - Index(RUM)

發(fā)布時間:2020-08-05 06:54:26 來源:ITPUB博客 閱讀:154 作者:husthxd 欄目:關(guān)系型數(shù)據(jù)庫

本節(jié)簡單介紹了PostgreSQL中的RUM索引,包括RUM索引的基礎(chǔ)知識和結(jié)構(gòu)等.
RUM索引是GIN索引的增強(qiáng)版.GIN索引一是只存儲詞素沒有存儲分詞后的詞素的位置信息,因此在Recheck(掃描驗證詞素是否滿足查詢條件)的時候效率相對較低,二是搜索通常會按相關(guān)性的強(qiáng)弱排序返回,但GIN沒有這些信息,只能通過計算后返回.
RUM索引可以避免上述2個問題.

簡介
相對于GIN索引,RUM索引,每個詞素不僅僅引用表中的行(TIDs),還包括詞素在文檔中出現(xiàn)的位置鏈表.
看下面的例子:


testdb=# create extension rum;
CREATE EXTENSION
testdb=# create index on ts using rum(doc_tsv);
CREATE INDEX
testdb=# select ctid, left(doc,20), doc_tsv from ts;
  ctid  |         left         |                         doc_tsv                         
--------+----------------------+---------------------------------------------------------
 (0,10) | Can a sheet slitter  | 'sheet':3,6 'slit':5 'slitter':4
 (0,11) | How many sheets coul | 'could':4 'mani':2 'sheet':3,6 'slit':8 'slitter':7
 (0,12) | I slit a sheet, a sh | 'sheet':4,6 'slit':2,8
 (0,13) | Upon a slitted sheet | 'sheet':4 'sit':6 'slit':3 'upon':1
 (0,14) | Whoever slit the she | 'good':7 'sheet':4,8 'slit':2 'slitter':9 'whoever':1
 (0,15) | I am a sheet slitter | 'sheet':4 'slitter':5
 (0,16) | I slit sheets.       | 'sheet':3 'slit':2
 (0,17) | I am the sleekest sh | 'ever':8 'sheet':5,10 'sleekest':4 'slit':9 'slitter':6
 (0,18) | She slits the sheet  | 'sheet':4 'sit':6 'slit':2
(9 rows)

其結(jié)構(gòu)如下:
PostgreSQL DBA(52) - Index(RUM)

TODO

參考資料
Indexes in PostgreSQL — 8 (RUM)
RUM

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI