Postgresql:10.11

测试表数据量:3亿

测试使用8c 16g 服务器


创建一张表:

create table nt_order (

id int PRIMARY KEY,

order_id text,

order_time timestamp without time zone,

info jsonb );

CREATE SEQUENCE nt_order_id_seq START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1;

alter table nt_order alter column id set default nextval('nt_order_id_seq');

创建索引:

brin索引:create index idx_nt_order_brin on nt_order using brin (order_time);

全文检索:create index idx_gin_nt_order_info on nt_order using gin(to_tsvector('english',info));

为什么使用brin索引?

占空间小,比btree小千倍靠上

使用brin索引适用任何场景吗?

brin索引适合范围查询(与btree索引比差距较小),brin索引主要用于高度相关的数据,比如日期,其它类型有测试结果反映出来效果较差

造数据:

数据结构

记录行数:

数据表大小:

索引表大小:

测试:

1、全文检索,where组合条件查询(in语句查询) 

SELECT id,order_time FROM nt_order WHERE to_tsvector('English', info) @@ to_tsquery('English','org^1 | org^2 | org^3') and to_tsvector('English', info) @@ to_tsquery('English','Aaron | Abbott | Abel | Abner | Abraham | Adair | Adam | Adolph | Adonis | Adrian | Ahern | Alan | Albert | Aldrich | Alexander | Alfred | Alger | Algernon | Allen | Alston | Alva | Alvis | Amos | Andre | Andrew | Andy | Angelo | Augus | Ansel | Antony | Antoine | Antonio | Archer | Archibald | Aries | Arlen | Armand | Armstrong | Arno | Arnold | Arthur | Arvin | Asa | Ashbur | Atwood | Aubrey | August | Augustine | Avery | Baird | Baldwin | Bancroft | Bard | Barlow | Barnett | Baron | Barret | Barry | Bartholomew | Bart | Barton | Bartley | Basil | Beacher | Beau | Beck | Ben | Benedict | Benjamin | Bennett | Benson | Berg | Berger | Bernard | Bernie | Bert | Berton | Bertram | Bevis | Bill | Bing | Bishop | Blair | Blake | BliTHE | Bob | Booth | Borg | Boris | Bowen | Boyce | Boyd | Bradley | Brady | Brandon | Brian | Broderick | Brook | Bruce | Bruno | Buck | Burgess | Burke | Burnell | Burton | Byron | Caesar | Calvin | Carey | Carl | Carr | Carter | Cash | Cecil | Cedric | Chad | Channing | Chapman | Charles | Chasel | Chester | Christian | Christopher | Clare | Clarence | Clark | Claude | Clement | Cleveland | Cliff | Clifford | Clyde | Colbert | Colby | Colin | Conrad | Corey | Cornelius | Craig | Curitis | Cyril | Dana | Daniel | Darcy | Darnell | Darren | Dave | David | Dean | Dempsey | Dennis | Derrick | Devin | Dick | Dominic | Don | Donahue | Donald | Drew | Duke | Duncan | Dunn | Dwight | Dylan | Earl | Ed | Eden | Edgar | Edmund | Edison | Edward | Edwiin | Egbert | Eli | Elijah | Elliot | Ellis | Elmer | Elroy | Elton | Elvis | Emmanuel | Enoch | Eric | Ernest | Eugene | Evan | Fabian | Felix | Fitzgerald | Ford | Frank | Franklin | Frederic | Gale | Gary | Gavin | Gene | Geoffrey | Geoff | George | Gerald | Giles | Glenn | Gordon | GREg | Griffith | Grover | Guy | Hale | Haley | Hamiltion | Hardy | Harlan | Harley | Harold | Harry | Harvey | Hayden | Henry | Herman | Hilary | Hiram | Hobart | Hogan | Horace | Howar | Hubery | Hugh | Hugo | Humphrey | Hunter | Hyman | Ian | Ingram | Ira | Isaac | Ivan | Ives | Jack | Jacob | James | Jared | Jason | Jay | Jeff | Jeremy | Jerome | Jerry | Jesse | Jim | Jo | John | Jonas | Jonathan | Joseph | Joshua | Joyce | Julian | Julius | Justin | Keith | Kelly | Ken | Kent | Kerr | Kerwin | Kim | King | Kirk | Kyle | Lance | Larry | Lawrence | Leif | Len | Lennon | Leo | Les | Lester | Levi | Lewis | Lionel | Lou | Louis | Lucien | LuTHEr | Lyle | Lyndon | Lynn | Magee | Mandel | Marcus | Marico | Marlon | Marsh | Marshall | Martin | Marvin | Matt | Max | Maximilian | Meredith | Merle | Merlin | Mick | Mike | Miles | Milo | Monroe | Montague | Moore | Morgan | Mortimer | Morton | Moses | Murphy | Murray | Myron | Nat | Nathan | Nathaniel | Neil | Nelson | Newman | Nicholas | Nick | Nigel | Noah | Noel | Norman | Norton | Ogden | Oliver | Omar | Osborn | Oscar | Osmond | Oswald | Otis | Otto | Owen | Page | Parker | Paddy | Paul | Payne | Perry | Pete | Peter | Phil | Philip | Porter | Prescott | Primo | Quincy | Quinn | Quintion | Rachel | Ralap | Randolph | Reg | Regan | Reginald | Reuben | Rex | Robert | Robin | Rock | Rod | Roderick | Rodney | Ron | Ronald | Rory | Roy | Rudolf | Rupert | Ryan | Sam | Samuel | Sandy | Saxon | Scott | Sean | Sebastian | Sid | Sidney | Silvester | Simon') and order_time between '2019-12-12 19:30:49' and '2019-12-12 19:32:49' limit 20 offset 10; 

2、加排序

小结:查询速度相对较快,但是加上order by会明显拖慢整个速度,下表是加order by和不加order by的速度对比

Where条件过滤出来的记录行数

不加 order by 的响应时间

加 order by 的相应时间

2146 31ms 127ms
4233 31ms 208ms
6380 31ms 288ms
8485 32ms 370ms
10578 32ms 430ms

Postgresql 全文检索测试相关推荐

  1. PostgreSQL 全文检索加速 快到没有朋友 - RUM索引接口(潘多拉魔盒)

    PostgreSQL 全文检索加速 快到没有朋友 - RUM索引接口(潘多拉魔盒) 作者 digoal 日期 2016-10-19 标签 PostgreSQL , RUM , GIN , full t ...

  2. Postgresql 压力测试 pgbench 与 准不准

    任何数据库都有压力测试的需求,每种数据库的压力测试都是要证明这个数据库本身在某种硬件的情况下,能达到的一种可以承受的工作上的压力. 那么有一个问题压力测试的数据准吗?  其实实际上我个人的回答是, 根 ...

  3. Mac安装PostgreSQL和测试安装结果

    为什么80%的码农都做不了架构师?>>>    安装:brew install postgresql -v 这一步会安装它和它的各种依赖包,并且初始化元数据库内容 添加到开机启动:l ...

  4. 用PostgreSQL 做实时高效 搜索引擎 - 全文检索、模糊查询、正则查询、相似查询、ADHOC查询...

    用PostgreSQL 做实时高效 搜索引擎 - 全文检索.模糊查询.正则查询.相似查询.ADHOC查询 作者 digoal 日期 2017-12-05 标签 PostgreSQL , 搜索引擎 , ...

  5. PostgreSQL 实时高效搜索 - 全文检索、模糊查询、正则查询、相似查询、ADHOC查询...

    标签 PostgreSQL , 搜索引擎 , GIN , ranking , high light , 全文检索 , 模糊查询 , 正则查询 , 相似查询 , ADHOC查询 背景 字符串搜索是非常常 ...

  6. PostgreSQL何以支持丰富的NoSQL特性?

    一.引言 上篇文章 介绍了PostgreSQL的典型高级SQL特性,PostgreSQL不仅是关系型数据库,同时支持丰富的NoSQL特性,本文将从 <PostgreSQL实战> 一书的&q ...

  7. sphinx结合scws的mysql全文检索

    主要目的:打造千万级数据全文搜索的数据库,提升查询效率 系统环境 主机名 IP地址 相关服务 版本 SQL 172.169.18.128 mysql5.6(主) Sphinx 172.169.18.2 ...

  8. PostgreSQL的json和jsonb比较

    PostgreSQL何以支持丰富的NoSQL特性? 一.引言 PostgreSQL不仅是关系型数据库,同时支持丰富的NoSQL特性 本文主要包含以下三部分内容: PostgreSQL的 JSON和JS ...

  9. PostgreSQL 179个场景

    案例 1.<多字段,任意组合(0建模) - 毫秒级实时圈人 - 最佳实践> 2.<IoT(物联网)极限写入.消费 最佳实践 - 块级(ctid)扫描> 3.数据采样和脱敏实践 ...

最新文章

  1. android gradle is插件,android gradle 插件创建 configuration
  2. 递归算法之排列组合-求一个集合S的m个元素的组合和所有可能的组合情况
  3. MySQL中如何通过修改表实现约束的添加与删除
  4. 看完这篇还不知道css固定和自适应可以小和尚要摆地摊了
  5. 广度优先搜索练习之神奇的电梯
  6. Java:File.separator作用相当于 ‘ \ ‘
  7. 信息传输计算机服务业,信息传输软件和信息技术服务业包括哪些
  8. 需求工程之一:需求之道
  9. 使用OStressSQL Server压力测试
  10. 在地图上点击一下,在图层上画一个点,并显示相关的信息
  11. android idle模式
  12. 推流式搅拌器选型功率计算方法_QSJ-1000
  13. 关于DNF的多媒体包NPK文件的那些事儿(4)- NPK文件操作流程
  14. Allennlp 安装和使用问题
  15. 使用U盘升级到win10系统
  16. 基于HTML贪吃蛇游戏摘要,基于JavaScript实现贪吃蛇游戏
  17. 【Uplift】因果推断基础篇
  18. 从孤独里找到一束光-2021
  19. 【Python表白小程序】七夕表白神器(赶紧收藏起来)
  20. EXCEL常用函数——计算统计函数

热门文章

  1. (干货)换宝贝技术升级!日销暴涨2000件,SKU改价不降权
  2. python 3.8.2(32-bit)安装教程_Python 3.8.2详细图文安装教程(附安装包)
  3. XUST组于2004年10月14日成立!
  4. 【private:】半导体物理
  5. 手机里面好几条便签突然没有怎么办
  6. 2021 Shopee AP( Apprentice Program)领航实习生项目(非coding方向):线上笔试总结
  7. 哪些大学可报考大数据专业?2017年大数据专业就业前景/智库2861
  8. 华为hicar是鸿蒙系统,鸿蒙之后,华为官宣HiCar智慧车载系统
  9. 前端使用原生js实现全局快捷键功能
  10. 【c++STL——第二讲】pair系列 (常用知识点总结)