PostgreSQL实战教程.pdf
《PostgreSQL实战教程.pdf》由会员分享,可在线阅读,更多相关《PostgreSQL实战教程.pdf(42页珍藏版)》请在咨信网上搜索。
1、23PostgreSQL实战教程国产化浪潮之上的PostgreSQL 04目录认识PostgreSQL中与众不同的索引 11PG Ganos时空场景快速开发实践23高维向量检索技术在PG中的设计与实践36PostgreSQL监控实战基于Pigsty解决实际监控问题 49PostgreSQL复制原理及高可用集群63性能优化和体系化运维 7545PostgreSQL实战教程国产化浪潮之上的PostgreSQL为什么数据库是过去式?因为过去正在变革。关系型数据库始于六七十年代,随着关系数据库理论的成立,诞生了很多伟大的公司,如:甲骨文、微软、IBM DB2、还有消失的Sybase。从七十年代至今,这
2、些公司基本都处于垄断地位,即使在二十世纪初MySQL和PostgreSQL数据库逐渐盛行,但仍然无法影响这些历史悠久的公司的市场地位。这些历史悠久的数据库公司为什么如此坚不可摧,存在以下几个原因:1.拥有最优秀的产品提到关系型数据库时,自然而然联系到业界公认的龙头老大甲骨文。甲骨文的产品无论从性能或稳定性等方面,都是最顶尖的。2.客户需求坚不可摧由于这些公司历史悠久的品牌影响力与市场认可度,他们的产品成为了许多公司与企业的第一选择。例如当在使用甲骨文产品的过程中遇到问题时,由于对甲骨文的盲目推崇,公司与企业也不会对问题过于苛责,因为在他们心中这已经是世界上最好的产品,这也是市场不好的一个地方。
3、3.强大的销售体系这些历史悠久的公司非常善于使用品牌营销进行产品推广与销售,每次的新品发布会总是能用出色的方式吸引众多业内人士的眼球,即使推出的新品是其他公司已经有类似产品,但这些龙头公司总能用深厚的品牌影响力与悠久的历史为自己背书,使得众多用户与企业趋之若鹜,痛快买单。(一)国际市场格局已经发生巨大变化国际市场格局的变化包括:云数据库、价格、客户需求。1.云数据库近年来云数据库对整个市场进行重新洗牌,由于云数据库能够节省成本,许多企业包括政府部门都把数据库迁到云上。2.价格从七八十年代至今,像甲骨文等公司的产品价格都十分高昂,用户在以前没有选择的余地,但如今越来越多开源和低廉的解决方案出现在
4、市场,使得市场价格也在悄然改变。3.客户需求过去的客户购买产品的主要是奔着License,使得企业合法化或上市。如今客户虽然仍存在这样的需求,但技术服务的需求占比越来越重。结合2019年全球所有数据库的销售额来看,整个市场销售额呈下降趋势,甲骨文在全球市场销售额下降19%+,幅度十分大。国际数据库市场的巨大变化,为中国的数据库工程师和企业的发展带来很好的机遇与挑战,可以说是最好的时代。(二)国内市场迎来新机遇这里结合华泰证券一份公开的数据库研究报告来进行阐述。报告中显示,目前国内的数据库厂商处于IT产业链的中游,上承软硬件提供商与国外数据库厂商源代码授权,下接应用系统集成商与最终用户,包含电信
5、、金融、能源和军工等。一、数据库过去式二、数据库最好的时代作者|赵振平3.客户需求过去的客户购买产品的主要是奔着License,使得企业合法化或上市。如今客户虽然仍存在这样的需求,但技术服务的需求占比越来越重。结合2019年全球所有数据库的销售额来看,整个市场销售额呈下降趋势,甲骨文在全球市场销售额下降19%+,幅度十分大。国际数据库市场的巨大变化,为中国的数据库工程师和企业的发展带来很好的机遇与挑战,可以说是最好的时代。(二)国内市场迎来新机遇这里结合华泰证券一份公开的数据库研究报告来进行阐述。报告中显示,目前国内的数据库厂商处于IT产业链的中游,上承软硬件提供商与国外数据库厂商源代码授权,
6、下接应用系统集成商与最终用户,包含电信、金融、能源和军工等。图表:IT产业链资料来源:IDC,华泰证券研究所应用开发商集成商软硬件提供商电信金融能源军工公安财政.最终用户数据库厂商国外数据库厂商源代码授权应用系统集成商图表:数据库产业链上游开发商基础软件厂商数据库厂商操作系统厂商中间件厂商网络和硬件厂商CPU厂商服务器厂商网络设备厂商下游中游上游IT产业链下游67PostgreSQL实战教程目前国内数据库厂商主要分为三个方向,分别是传统数据库、云数据库和开源数据库,各个方向都有领头羊厂商在领跑数据库发展。根据2018年国内数据库市场份额可看出,国内的市场仍由国外市场垄断,国产数据库厂商所占市场
7、份额相加仍与国外公司相差甚远。国产数据库武汉达梦南大通用人大金仓神舟通用蚂蚁OceanBase阿里云腾讯云百度云华为Gauss DB瀚高科技优炫软件巨杉数据库云数据库开源数据库传统数据库名次厂商市场份额(按销售额)1Oracle2IBM48.5%10.1%3Microsoft9.6%4SAP7.2%5Teradata6南大通用7达梦2018年国内数据库市场份额3.9%2.5%2.3%8神舟通用9人大金仓10其他1.5%1.1%13.3%报告指出,随着国内数据库市场的不断发展,2021年市场规模预计达到158.8亿元,并预测在未来的三年继续快速上升。综上所述,随着国产数据库厂商的不断突破与国内市
8、场规模不断上涨,国内将迎来新的机遇与挑战。销售额(亿元)图表:中国数据库管理系统市场规模及预测02040608010012014016018092.92016105.32017117.62018130.32019144.02020158.82021(一)技术底座基于PostgreSQL的技术底座,用户可以开发很多东西。例如开发新的数据库,将PostgreSQL做成产品的一部分,如ERP的一部分或电信信息系统的一部分等。目前已经有许多成功案例,并且成为国内外很有影响力的公司,比如基于PostgreSQL的EDB,还有已经在美国上市的Greenplum,基于PostgreSQL也可以开发其他数据库
9、。这里需要注意的是,PostgreSQL某些地方的功能无法满足用户的需求,用户可利用PostgreSQL特有的插件式机制,在PostgreSQL开发自己的插件。三、PostgreSQL是你的新底座PostgreSQLEDBGreenplum其他数据库报告指出,随着国内数据库市场的不断发展,2021年市场规模预计达到158.8亿元,并预测在未来的三年继续快速上升。综上所述,随着国产数据库厂商的不断突破与国内市场规模不断上涨,国内将迎来新的机遇与挑战。图表:中国数据库管理系统市场规模及预测020406080100120140160180(一)技术底座基于PostgreSQL的技术底座,用户可以开发
10、很多东西。例如开发新的数据库,将PostgreSQL做成产品的一部分,如ERP的一部分或电信信息系统的一部分等。目前已经有许多成功案例,并且成为国内外很有影响力的公司,比如基于PostgreSQL的EDB,还有已经在美国上市的Greenplum,基于PostgreSQL也可以开发其他数据库。这里需要注意的是,PostgreSQL某些地方的功能无法满足用户的需求,用户可利用PostgreSQL特有的插件式机制,在PostgreSQL开发自己的插件。三、PostgreSQL是你的新底座89PostgreSQL实战教程(二)商业底座在往年,市场上20岁+的数据库工程师的简历有许多,35岁及以上的数据
11、库工程师简历很少出现。而在近年,越来越多的35岁+的数据库工程师出现在求职市场,DBA中年危机开始显现。(一)数据库品牌虽然PostgreSQL在市场快速发展,但有不少Oracle工程师、DB2工程师、开发人员对PostgreSQL呈观望甚至抵触立场,原因是觉得学习PostgreSQL的门槛高,学习难度大。如果将数据库品牌比喻成汽车品牌,Oracle相当于宝马,DB2相当于奔驰,而新兴的PostgreSQL相当于长城汽车。如果你能够熟练驾驶宝马与奔驰,那么从技术角度来说,通过简单的熟悉与练习,你也能够快速上手长城汽车,因为大部分的原理都是一样的。因此,对于Oracle工程师、DB2工程师、开发
12、人员来说,PostgreSQL并没有想象中的生涩难懂,相反,熟练掌握Oracle、DB2的工程师掌握PostgreSQL后,能在当下PostgreSQL盛行的数据库市场中取得极强的竞争力。(二)类似的体系结构如上图所示,Oracle与PostgreSQL的架构存在许多相似的地方:内存结构类似对一个数据库工程师来说,20岁是职业生涯的黄金发展时期,强大的学习能力使你能在短时间内成长为公司的骨干。当到达30岁时,大多数人基本到达数据库职业生涯的巅峰。当35岁的时候,许多工程师感受到人生的彷徨,在DBA生涯的分岔路上犹豫不决。此时有一部分人选择继续深耕技术,有一部分转向非技术工作。当到达45岁时,现
13、实的残酷表明,对比20岁+的年轻人,大多数45+岁的工程师在技术市场竞争力非常小,中年危机显现。当一个数据库工程师到了30岁以后,技术的硬实力已经无法满足职业生涯发展的需求,更多的软实力才能让自己具备更多的市场竞争力。这个软实力包括许多部分,例如跟随行业变革前进、优秀团队、沟通能力、团队沟通能力与协同能力等。四、35岁DBA中年危机五、PostgreSQL学习方法论PostgreSQL强大的可塑性与广泛的使用市场使之成为商业底座。基于PostgreSQL创立的新公司遍布世界各地,这些公司基于PostgreSQL可以做许多新产品,例如EDB。基于PostgreSQL还可以满足许多需求,例如相关的
14、技术服务、技术支撑、开发服务等。综上所述,PostgreSQL不仅是硬实力的技术底座,也是高速发展的商业底座。PostgreSQL新公司诞生数据库新产品数据库技术服务例如以前很多人做Oracle,也确实能有许多就业方向,但目前市场的Oracle工程师数量众多,市场竞争激烈。随着整个时代发生变革,市场往开源数据库和国产数据库方向前进,因此PostgreSQL是一个很好的基座。我们跟随行业与时代的变革而变革,离开舒适区,投身主流领域,才能更好扩展自身职业生涯。随着数据库市场的不断更新迭代,PostgreSQL产业在中国市场发生巨大变化,PostgreSQL管道铺设的各个行业,以各种直接或间接的形式
15、渗透到各行各业。在PostgreSQL快速发展的时代,或许35岁的中年危机也是人生契机。(一)数据库品牌虽然PostgreSQL在市场快速发展,但有不少Oracle工程师、DB2工程师、开发人员对PostgreSQL呈观望甚至抵触立场,原因是觉得学习PostgreSQL的门槛高,学习难度大。如果将数据库品牌比喻成汽车品牌,Oracle相当于宝马,DB2相当于奔驰,而新兴的PostgreSQL相当于长城汽车。如果你能够熟练驾驶宝马与奔驰,那么从技术角度来说,通过简单的熟悉与练习,你也能够快速上手长城汽车,因为大部分的原理都是一样的。因此,对于Oracle工程师、DB2工程师、开发人员来说,Pos
16、tgreSQL并没有想象中的生涩难懂,相反,熟练掌握Oracle、DB2的工程师掌握PostgreSQL后,能在当下PostgreSQL盛行的数据库市场中取得极强的竞争力。(二)类似的体系结构如上图所示,Oracle与PostgreSQL的架构存在许多相似的地方:内存结构类似五、PostgreSQL学习方法论例如以前很多人做Oracle,也确实能有许多就业方向,但目前市场的Oracle工程师数量众多,市场竞争激烈。随着整个时代发生变革,市场往开源数据库和国产数据库方向前进,因此PostgreSQL是一个很好的基座。我们跟随行业与时代的变革而变革,离开舒适区,投身主流领域,才能更好扩展自身职业生
17、涯。随着数据库市场的不断更新迭代,PostgreSQL产业在中国市场发生巨大变化,PostgreSQL管道铺设的各个行业,以各种直接或间接的形式渗透到各行各业。在PostgreSQL快速发展的时代,或许35岁的中年危机也是人生契机。进程结构类似用户进程连接方式类似两者都有高速缓存区,Oracle称为SGA,PostgreSQL称为内存共享,区域也是对应的。都有日志输写进程、数据库输写进程、归档进程。当用户连接进来时,在Oracle里面默认分配服务器之间的进程,PostgreSQL也一样。需要排序时,Oracle在PGA里面进行,PostgreSQL在Work Men里面进行。22Y30Y35Y
18、45Y硬实力软实力1011PostgreSQL实战教程故障排查的过程类似Oracle和PostgreSQL都有错误日志文件等。通过上述架构对比,可以发现Oracle与PostgreSQL十分相似,对于熟练掌握Oracle的工程师来说,可以快速上手PostgreSQL。随着国内数据库市场的巨大改革,PostgreSQL逐渐占据市场主导地位,然而Oracle工程师遍地都是,而从业12年的PostgreSQL工程师仍是凤毛麟角。不少工程师已经开始嗅到其中契机,上手PostgreSQL增强自身竞争力,在日渐扩大的数据库市场占得一席之地。认识PostgreSQL中与众不同的索引(一)索引的作用这些历史悠
19、久的数据库公司为什么如此坚不可摧,存在以下几个原因:索引主要有三个作用:(1)加速TUPLE定位select*from test01 where k=10;select*from test01 where k100 and k、=、100 and k、=、图型没有重叠操作符号:、&BRIN索引块范围索引;存储放在一个表的连续物理块范围上的值摘要信息,如最大值、最小值;可以用于:、=、通常其他数据库没有BRIN索引,是PG的亮点功能。2.其他分类PG索引按照其他分类也可分为:唯一索引,部分索引,多列索引和表达式索引,这里不展开作详细介绍。(五)PostgreSQL中文社区技术认证目前Postgr
20、eSQL中文社区技术认证有三级认证,分别为PCA(认证专员)、PCP(认证专家)PCM(认证大师),可在社区网站“http:/”查看。(三)非阻塞式创建索引非阻塞式创建索引是PostgreSQL的一大优势。使用普通方式创建索引时,PostgreSQL会锁定表以防止写入,在此过程中其他用户仍然可以读取表,但是DML等操作被一直阻塞,直到索引创建完毕,这在大多数的在线数据库中都是不可接受的行为。鉴于此,PostgreSQL支持不长时间阻塞更新的情况下建立创建索引,这是通过“CREATE INDEX CONCURRENTLY idx_tab01_note on testtab01(note);”选项
21、来实现的。当该选项被使用时,PostgreSQL会执行表的两次扫描,因此该方法需要更长一些的时间来建索引,尽管如此,这个选项也是很有用的一个功能。(四)非阻塞式重建索引在PostgreSQL的12版本之前,重建索引时不支持Concurrently的参数,可以在同样的列上用Concurrently建一个不同名的新索引,再把旧索引删除,这样也不阻塞DML等语句。(五)PostgreSQL中文社区技术认证目前PostgreSQL中文社区技术认证有三级认证,分别为PCA(认证专员)、PCP(认证专家)PCM(认证大师),可在社区网站“http:/”查看。唯一索引部分索引多列索引表达式索引(函数索引)软
22、实力CREATE INDEX idx_test01_park_k ON test01(k)where k and k”表示这个数组中包含某个固定电话,这样就可以查出号码对应的号主。假设我们有一张表,记录了IP地址范围对应的地区,给一个公网IP就可以查询出这个IP地址所对应的地区。(一)普通解决方案如上图所示,该格式包含IP的ID,IP的起始地址与结束地址,IP所在地区,IP对应的运营商,Inet表示PostgreSQL里IP地址的范围,例表如下:在这里我们建了250000行数据,然后我们再给它建了一个GIN索引,用“”表示这个数组中包含某个固定电话,这样就可以查出号码对应的号主。通过执行计划可
23、以看到,通过在PostgreSQL的数组上建立GIN索引来查找数值时,所需时间非常短,仅需0.108ms。三、数组上建GIN索引的例子四、快速查找某个IP是哪个地区-Bitmap Heap Scan on test01(cost=89.00.1508.48 rows=1 width=55)(actual time=2.293.2.354 row=1 loops=1)Recheck Cond:(id=100)Rows Removed by Index Recheck:387 Heap Block:lossy=4 -Bitmap Index Scan on idx_test01_k_brin_4(
24、cost=0.00.89.00 rows=388 width=0)(actual time=2.226.2.227rows=40 loops=1)Index Cond:(id=100)Planning Time:0.225 msExecution Time:2.436 ms(8 rows)-Bitmap Heap Scan on contacts(cost=29.69.2298.29 rows=1250 width=95)(actual time=0.079.0.080 row=1 loops=1)Recheck Cond:(phone 13600006688:character varyin
25、g(32)Heap Blocks:exact=1 -Bitmap Index Scan on idx_contacts_phone (cost=0.00.29.37 rows=1250 width=0)(actual time=0.053.0.053rows=1 loops=1)Index Cond:(phone 13600006688:character varying(32)Planning Time:0.113 msExecution Time:0.108 ms(7 rows)QUERY PLANQUERY PLAN联系人表:CREATE TABLE contacts(id int pr
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- PostgreSQL 实战 教程
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【Stan****Shan】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【Stan****Shan】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。