PostgreSQL GIN索引实现原理
背景 本文参考并扩展自如下文档,修正了一些内容(大多数是由于版本不同造成的差异) 《PostgreSQL数据库内核分析》 ( 成书较早,大量内容基于8.4的代码编写 ) 以及 http://zisedeqing.blog.163.com/blog/static/95550871201621623458216...
背景 本文参考并扩展自如下文档,修正了一些内容(大多数是由于版本不同造成的差异) 《PostgreSQL数据库内核分析》 ( 成书较早,大量内容基于8.4的代码编写 ) 以及 http://zisedeqing.blog.163.com/blog/static/95550871201621623458216...
背景 PostgreSQL中,有一种GIN索引,被广泛应用于多值类型,例如数组,分词,同时也被应用于模糊查询等领域。 gin索引,将列(比如数组,全文检索类型)中的值拿出来,再存储到树形结构中(类似B-TREE,键值+heap行号s),对于低频值,会作为posting list直接存在树的gin的叶子节点中,而...
背景 如果你是身处数据库行业的朋友,最近可能被朋友圈的各种关于 “炉石数据被删” 、 “mongoDB遭黑客勒索” 的事件刷屏。 而就在今天(2017-02-01)事情再一次升华, “gitlab 数据库的数据文件被rm -rf误删”,数据库的恢复过程和细节有直播视频,请参考gitlab的官方解释,以免以讹传讹...
背景 曾经一位社区的兄弟跟我抱怨MySQL里面查IP地址库并发几千每秒的查询数据库就抗不住了。 于是问他要来了他们的IP地址库数据和查询用的SQL以及MySQL里面的表结构。 我也想把数据转到PostgreSQL里面做一下相对应的压力测试,看看PostgreSQL的表现。 在其他的业务中,这样的需求也是屡见...
背景 Log4j是Apache的一个开源项目,通过使用Log4j,可以控制将应用日志信息输送到: 控制台、文件、GUI组件,甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程、数据库等; 可以控制每一条日志的输出格式; 通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。 ...
背景 飞雪连天射白鹿,笑书神侠倚碧鸳。 金庸老先生果然好功夫,武侠名著的首字串起来也是一首好湿。 在很多的武侠小说中,都有武林盟主的角色(虽然通常为反派),既然是武林,武林盟主除了综合素质,人脉,武功当然也不能差。 很多小说中武林盟主通常就是比武决出的,比如耳熟能详的华山论剑。 玩过金庸群侠传...
背景 人们为了更好的描述一个东西,有一种将大化小的思路,比如时钟被分为了12个区域,每个区域表示一个小时,然后每个小的区域又被划分为更小的区域表示分钟。 在GIS系统中,也有类似的思想,比如将地图划分成网格。通过编码来简化地理位置的判断(比如相交,包含,距离计算等),但是请注意使用网格带来的问题,比如精度的...
背景 水哥王昱珩不用多介绍,在最强大脑第六期晋级赛第五场,在“微观辨水”环节中,520杯同质同量同水源的水被他一眼辨认出,Dr.魏给出9分难度分,最终王昱珩以117分晋级。 随后的中日PK赛中的“扇面识别”环节中,王昱珩选择放弃观察,最终在第一轮中国队0:1落后的情况下,战胜日本队原口证为中国队扳回1分。 ...
背景 如果你是数据库这个行业的朋友,最近可能会被朋友圈的各种关于 “炉石数据被删” 、 “mongoDB遭黑客勒索” 、 “gitlab数据文件被rm -rf” 的事件刷屏。 数据库在是企业中占据非常重要的位置,发生数据库被SQL注入,数据被误删的事情,不仅仅影响业务,还可能造成用户的信息被泄露。 DBA一族...
背景 我家有只小鸡鸡,它的名字叫吉吉。 吉吉有一位铁杆鸡友大象Pi吉哥哥(PostgreSQL)。 吉吉给大伙拜年啦,祝大家鸡年吉祥,新年新气息,与好鸡友大象哥哥愉快的玩耍,鸡情四射。 故事从吉吉和好鸡友大象哥哥偶遇的那天开始。 有一天,大象哥哥摆下国际象棋擂台,邀请各路英豪前来,就这样和吉...