成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

POSTGRESQL如何解決LIKE%%的問(wèn)題

小編給大家分享一下POSTGRESQL如何解決LIKE %%的問(wèn)題,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

成都創(chuàng)新互聯(lián)10多年成都企業(yè)網(wǎng)站建設(shè)服務(wù);為您提供網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)頁(yè)設(shè)計(jì)及高端網(wǎng)站定制服務(wù),成都企業(yè)網(wǎng)站建設(shè)及推廣,對(duì)火鍋店設(shè)計(jì)等多個(gè)行業(yè)擁有多年的網(wǎng)站營(yíng)銷(xiāo)經(jīng)驗(yàn)的網(wǎng)站建設(shè)公司。

題目比Big mouth, 在POSTGRESQL 進(jìn)入視野前,如果我們看到有程序員這樣寫(xiě)

Select  name from employees where name like '%Chars%';  

并且這個(gè)表的行數(shù)在幾百萬(wàn)行到千萬(wàn)行的水平,我們只能給寫(xiě)這個(gè)語(yǔ)句的人一句。

Are you lost your mind , 換句話(huà)就是 你是瘋了嗎?

世界不同了,隊(duì)伍不好帶,以前 ORACLE , SQL SERVER , MySQL 都統(tǒng)一口徑說(shuō),我們不支持這樣  SB 的查詢(xún)方式,你要不就 寫(xiě)成

select name from emplyees where name like '%Chars' 

要不就

select name from employees where name like 'Chars%'

如果非要如此,%% 的like查詢(xún),你不如去做全文索引。 就此就將這樣的需求已 SB 的標(biāo)簽貼了幾十年。 就連ORACLE 這樣已經(jīng)神話(huà)的數(shù)據(jù)庫(kù),也對(duì)此毫無(wú)作為。

“更多選擇,更多歡樂(lè)”, 當(dāng)然這歡樂(lè)不是給  ORALCE ,SQL SERVER ,MYSQL 這幾個(gè)家伙的。因?yàn)榈酱藶橹?,這幾位,還是只能 TABLE SCAN 對(duì)待 like %% 這樣的查詢(xún),而走不了索引。

POSTGRESQL ,面對(duì)幾十年解決不了的問(wèn)題,輕聲的說(shuō)了句,我試試吧

來(lái)我們看看POSTGRESQL 怎么能將別的數(shù)據(jù)庫(kù)都做不到的事情,輕描淡寫(xiě)的就做完了。

首先我們先做一個(gè)實(shí)驗(yàn),先建立一個(gè)表,

POSTGRESQL如何解決LIKE %%的問(wèn)題

然后我們插入100的數(shù)據(jù)

POSTGRESQL如何解決LIKE %%的問(wèn)題

我們看看我們插入了什么樣的數(shù)據(jù),以NAME 為字段的一堆無(wú)序的字符。

POSTGRESQL如何解決LIKE %%的問(wèn)題

為了比較POSTGRESQL 在處理 LIKE %% 這樣的數(shù)據(jù)和全表掃描的區(qū)別,我們也建立一個(gè)不使用POSTGRESQL 索引的數(shù)據(jù)表,來(lái)做一個(gè)對(duì)比

名字里面有一個(gè) 2 

POSTGRESQL如何解決LIKE %%的問(wèn)題

通過(guò)POSTGRESQL 獨(dú)有的GIN 索引,(這只是其中一種解決 LIKE %%方法,還有幾種方法還可以面對(duì)更大無(wú)序的數(shù)據(jù)去做 like %%),至于更刺激的事情,還是找個(gè)機(jī)會(huì)下次說(shuō)。

CREATE INDEX idx_employees_name_gin ON employees USING gin (name gin_trgm_ops);

POSTGRESQL如何解決LIKE %%的問(wèn)題

索引建立完了,我們也需要開(kāi)始做比較了

POSTGRESQL如何解決LIKE %%的問(wèn)題

結(jié)果很明顯,employees 1 在使用了 gin 索引后,查詢(xún)的時(shí)間耗時(shí) 1.221ms  ,而如果不使用索引的情況下 我們要使用 68.484 ms 的時(shí)間。

POSTGRESQL如何解決LIKE %%的問(wèn)題

有人可能有異議,說(shuō)你的比較光是在POSTGRESQL 本身上做的,這不公平,你應(yīng)該在MYSQL , SQL SERVER , ORACLE 最新版上都做一遍。

我只想說(shuō),當(dāng)我看到100萬(wàn)的數(shù)據(jù),在用LIKE %% 查詢(xún)還能走索引,在一個(gè)破筆記本上的時(shí)間是 1.221ms,我已經(jīng)毫無(wú)愿望在去測(cè)那些數(shù)據(jù)庫(kù)了,毫無(wú)意愿, 而更可笑的是, 這樣一個(gè)數(shù)據(jù)庫(kù)他是免費(fèi)的,比MYSQL 免費(fèi)的還徹底。 面對(duì) SQL SERVER  ORACLE  收取巨額費(fèi)用,幾十年了還解決不了這樣like  %% 的問(wèn)題。

看完了這篇文章,相信你對(duì)“POSTGRESQL如何解決LIKE %%的問(wèn)題”有了一定的了解,如果想了解更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!

分享標(biāo)題:POSTGRESQL如何解決LIKE%%的問(wèn)題
文章位置:http://jinyejixie.com/article48/pgejep.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈、小程序開(kāi)發(fā)、面包屑導(dǎo)航、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站策劃、網(wǎng)站導(dǎo)航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)
顺平县| 云梦县| 沾化县| 佛坪县| 阳信县| 镇雄县| 德钦县| 扎兰屯市| 眉山市| 榆林市| 游戏| 裕民县| 西吉县| 冕宁县| 饶阳县| 游戏| 竹溪县| 蛟河市| 崇礼县| 布尔津县| 同德县| 安徽省| 富平县| 云浮市| 新昌县| 卓尼县| 梁山县| 江达县| 怀集县| 涿州市| 隆安县| 长白| 深泽县| 平阴县| 乐陵市| 万州区| 舒兰市| 扬中市| 怀集县| 闽清县| 太仓市|