亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

Postgresql 查詢中的特異功能是什么

發布時間:2022-01-04 09:56:55 來源:億速云 閱讀:126 作者:柒染 欄目:大數據

這期內容當中小編將會給大家帶來有關Postgresql 查詢中的特異功能是什么,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

本來上次是寫過這個PostgreSQL 的功能的,但上次在一個論壇里面發現其實大家對這個功能認識上是有誤區的,所示這次是的詳細的一次文字。

功能很簡單的就是模糊查詢,類似 select * from table where column1 like ‘%PG牛逼%’;然后走一個靠譜的索引的查詢,ORACLE 打死他都不行,當然可以走全文索引,那MYSQL, SQL SERVER 人家也不干,人家也有這功能。

pg_trgm本身是不包含在PostgreSQL 的源碼安裝中的,當然是插件的方式安裝,安裝上是很簡單的,具體請百度(弄濕了我可不管)

進入到你的數據庫,create extension pg_trgm;就OK 了

Postgresql 查詢中的特異功能是什么

我在論壇中發現的第一個問題,是說建立這樣的模糊查詢,僅僅建立btree 索引就可以了,但pg_trgm 只支持兩種索引Gist and Gin, 這兩種索引。(這可不是我說的,官方的白紙黑字)

Postgresql 查詢中的特異功能是什么

所以說正確的針對一個列的索引,是要建立兩個索引的,一個是BTREE 索引,一個是 GIN 或 Gist 索引,兩種索引面對的“客戶”是不同的。

那我們來看看到底他是怎么工作的

首先我們先生成一個表用來測試

創建一個存儲過程用來插入測試數據  

create or replace function data_produce(int) returns text as $$    

declare    

  res text;    

begin    

  if $1 >=1 then    

    select string_agg(chr(19968+(random()*20901)::int), '') into res from generate_series(1,$1);    

    return res;    

  end if;    

  return null;    

end;    

$$ language plpgsql strict; 

Postgresql 查詢中的特異功能是什么

insert into test_pg_trgm (search) select data_produce(20) from generate_series(1,1110000);

執行后生成我們本次要測試的數據10萬條

Postgresql 查詢中的特異功能是什么

Postgresql 查詢中的特異功能是什么

下面我們創建索引了,創建GIN 索引 

創建索引中系統報錯,這是由于還沒有創建相關的擴展

Postgresql 查詢中的特異功能是什么

添加了這些擴展后我們就可以建立相關的索引

Postgresql 查詢中的特異功能是什么

我們可以看到查詢已經走了索引,并且查詢時間1ms

Postgresql 查詢中的特異功能是什么

那如果我們沒有這個索引會怎么樣,這條語句慢了 48倍并且只能和ORACLE  SQL SERVER , MYSQL一樣走了全表掃描。

Postgresql 查詢中的特異功能是什么

OK 如果已經體會到了PG 在模糊查詢中的厲害之處,群里有人問的第二個問題是 GIN VS GIST  那種索引更好

這也是一個熱門的問題?

下面也做一個測試,(但不證明GIN 比 GIST 性能強),我們建立一個gist的索引,也提通過查詢來進行模糊方式的查詢

Postgresql 查詢中的特異功能是什么

圖中的時間 12ms ,比全表掃描快了4倍,比GIN 慢了12倍

當然這里并不是說 GIST 不如GIN ,具體的索引有不同的使用場景。(做人辦事都的客觀)

最后,我們來證明一下,普通的運算方式對于GIST GIN 索引是無效的,所以我們對某個字段必須建立兩個索引 BTREE AND  GIST OR GIN。

下圖整體的證明了上面的立論。這里就不解釋了

Postgresql 查詢中的特異功能是什么

上述就是小編為大家分享的Postgresql 查詢中的特異功能是什么了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

昌邑市| 沧源| 沐川县| 嘉祥县| 浮梁县| 翼城县| 白河县| 满洲里市| 日土县| 阳曲县| 天柱县| 伊宁县| 洪雅县| 眉山市| 贺州市| 比如县| 通海县| 鲁甸县| 连平县| 延津县| 福州市| 曲阳县| 中西区| 西林县| 九台市| 前郭尔| 米泉市| 凤冈县| 武安市| 遵义市| 丹东市| 综艺| 聂拉木县| 光泽县| 都匀市| 衡水市| 雷州市| 甘泉县| 彩票| 通化县| 定陶县|