PostgreSQL,阿里云,产品介绍,生态,案例,开发实践,管理实践
PG是一个纯社区化的企业级开源数据库,没有任何一个国家和公司控制PG。开源许可非常友好,在遵循许可(COPY2段话)的情况下可以任意使用和分发。功能、稳定性、性能和ORACLE对齐,是去O的首选数据库。
其他大多数的开源数据库背后都有商业公司控制,开源许可通常不是特别友好,使用不当可能踩坑。
天天象上活动,每个月一场,全国巡回。旨在建立各地企业生态圈子,建立各地企业与PG数据库社区的联系,切实的帮助企业解决技术、商业、生态层面的问题。
xx摩擦、ZxE事件、以及近期某银行收到Oracle6亿罚单等等的热点事件,引发了企业对核心技术安全合规、自主可控的深度思考。对于数据库来说,安全合规、自主可控,成本等也已经成为绝大多数企业迫在眉睫要解决的问题。
什么数据库最适合替代Oracle,同时在技术架构上领先于传统数据库,并且可以支持企业的蓬勃发展?除了需要考虑Oracle兼容性、企业特性(可靠、可用、安全、可扩展、性能、稳定、功能)还需要考虑产品的开源许可,多模特性,混合场景能力等等。
PostgreSQL作为最先进的企业级开源数据库(BSDlike开源许可,自用和分发都不需要担心法律风险,不需要担心PG被收购,不用担心PG被一家独大的公司控制。),覆盖OLTP,OLAP,NoSQL,搜索,时空,流,图,图像等应用场景。应用场景丰富,并且在稳定性、性能、可用性、可靠性、容灾、安全性、扩展性等方面不亚于商用数据库Oracle,被业界称为“开源界的Oracle”。在企业数据库自主可控、安全合规、成本几个方面,PG毫无疑问的成为了企业的最佳选择。
2018年9月开始,《PG天天象上》活动陆续在“杭州,北京,郑州、广州、深圳、上海、南京、合肥、长沙、成都、温州、武汉”等多地开展,活动在线上与线下覆盖人数已达数万人次,出席活动的参会者汇聚了银行,证券,互联网,人工智能,高校,医疗,新制造,电商,游戏,政府,电力,物流等行业的开发者,DBA,架构师,CTO,CIO。
欢迎就近选择参加。
2、阿里云ADAM+PPAS(POLARDBforOracle)的企业去O实践
3、PostgreSQL数据库架构、原理(物理架构、进程结构、逻辑架构、流复制架构、HA架构、多副本架构;权限体系、存储引擎原理、索引结构等)。
4、PostgreSQL理论基础,管理、开发实践,优化方法,PG学习参考资料
5、PostgreSQL在OLTP|OLAP、空间数据管理、图式搜索、全文检索、文本搜索、特征搜索、时序应用、流式数据处理、用户画像分析等场景的应用案例。
案例横跨物联网、电商、生物科技、游戏、传统企业、CRM、ERP、ZF、GA、物流、音视频、BI、社交、金融、证券、手机、天文等行业。
8、企业深入圆桌研讨会议,企业数据库辩论赛
涉及内容较多,案例涉及到详细的架构设计、代码、原理等内容,请参阅本视频提供的PDF内的URL链接。
PostgreSQL中国社区发起人之一、常委、兼任社区大学校长。
30项数据库专利。(截至2018-01)
致力于PostgreSQL数据库在中国的技术落地与推广、人才培养。
重要议题:阿里云PG产品线生态介绍,PG案例,PG的原理、应用场景、优化、管理等内容等。
报名人数:80
参会企业:阿里巴巴、海康威视、亚信、乘数科技、天宇、浙江大学、斯凯网络、大树金科、点我达、中国电信、民生银行、网易、火树医疗、同花顺、等。
参会企业:阿里巴巴、北京联通、邮储银行、华胜天成、优炫软件、炫果壳、四维图新、海康威视、金风科技、中国人寿、国交信通、EnjoyIT、京东、海量数据、智联招聘、神州飞象、万达、南天软件、超图、去哪儿、汽车之家、英泰伟业、华为、九天气象、东方龙马、CETC、云能服、Ylink、等。
报名人数:36
参会企业:阿里巴巴、上海新炬、中原银行、郑州大学、华三、博茂、北京国源、中盟股份、富士康、中移在线、北京许继、华中科技大学、众合景轩、税友、亚信、北京辰安、河南优蓓教育、新天科技股份、郑州商旅、等。
报名人数:69
重要议题1:阿里云PG产品线生态介绍,PG案例,PG的原理、应用场景、优化、管理等内容等。
重要议题2:阿里ADAM+PPAS去O方法论,Oracle迁移上云实践。
重要议题3:企业深入圆桌研讨会议。
参会企业:阿里巴巴、广州云图、网易、玄武、鼎信、广州彩讯科技股份、诺基亚、广东粤铁天福、广州人瑞、万科、广东三维家、北京中亦、等。
报名人数:103
重要议题2:阿里ADAM+PPAS去O方法论,实践。
参会企业:阿里巴巴、人民银行、穆迪信息咨询、华润电力、Morningstar、白骑士、海量、库博商务、金智、亚信、万科、华海乐盈、平安科技、中兴、招商金融、富璟、深圳证券交易所、中国移动、华润银行、人寿保险、大疆、顺丰科技、华为、金蝶、TCL、IBM、恒大等。
报名人数:88
重要议题3:HELLOBIKE,周飞,PG在HELLOBIKE的应用实践。
重要议题4:上海云贝网络科技有限公司,张勤建,PG在电商平台运营决策系统中的应用实践。
重要议题5:乘数科技,董红禹,医疗行业从MSSQL到PG的迁移实践。
重要议题6:企业深入圆桌研讨会议。
参会企业:阿里巴巴、迪卡侬、HELLOBIKE、上海云贝、乘数科技、同花顺、宝胜科技、爱用宝、人保、东方航空、聚水潭、爱树、华东师范、上交所、嘉银金融、银嘉金服、MBB、松鼠AI、易鲸捷、润和、新炬、航信、真旅、小红书、兴业银行、汇信、美味、FP等。
线上线下2200余人次参加。
报名人数:330
重要议题1:PostgreSQL社区生态建设、工作汇报
重要议题2:阿里云PG产品线生态介绍,PG案例,PG的原理、应用场景、优化、管理等内容等。
重要议题3:阿里ADAM+PPAS去O方法论,Oracle迁移上云实践。
重要议题4:天数智芯,赵志强,工业时序数据平台的设计与应用实践。
重要议题6:苏宁,陈华军,PGcitus分库分表架构在苏宁的大规模应用。
重要议题7:中兴,陈河堆,PostgreSQL基于PaaS平台的高可用集群方案。
重要议题8:北京国网富达科技,梅白帆,PostGIS在地理信息行业中的应用。
重要议题9:企业深入圆桌研讨会议。
参会企业:阿里巴巴、中兴、苏宁、亚信、华米科技、三只松鼠、中软、veritas、科大讯飞、新蛋、中石化、南京大学、中科大、南京邮电、南京信息学院、南京理工、南京师范、南京财经、南京工业大学、南京航空航天大学、汉得、神州数码、江苏电信、国家电网、南瑞、IBM、中国电科研究院、百度、云和恩墨、远景、天数智芯、中车、恒舜金融、润和、苏宁银行、等。
线上线下700余人次参加。
报名人数:147
重要议题4:杭州乘数科技,唐成《为什么PostgreSQL是最适合去O的数据库》
重要议题6:PG中国社区主席,赵振平《数据泄露事件与PostgreSQL安全防护》
重要议题7:企业深入圆桌研讨会议。
参会企业:阿里巴巴、邮储银行、农业银行、科大讯飞、惠而浦、思科、国科量子通信、汉和智能物流、云易智能、鸿数科技、CXMT、中国科技大学、省交通运输厅、美林数据、海量、碧桂园、瀚高基础软件、阳光电源、上海大智慧、长鑫存储、上海博辕、神州数码、南瑞、财汇资讯、华米科技、华胜天成、新炬、广博量子、等。
线上线下1000余人次参加。
企业深入圆桌研讨会议小结:
1.1、数据库免维护(软件开发商关心这个问题,可以低成本大批量部署,维护成本低)、
1.2、业界标准的HA方案(企业通用问题,PG可选的HA方案太多,什么好?个人建议用patroni,成熟可靠),
1.4、大数据量(30TB级)场景是否可用PG,可以,PG本身就是HTAP企业级数据库(能同时满足oltp,olap),只要硬件满足即可能存,能跑得很好。(未来在xid,zheap两个方向改进后会更进一步)
1.5、已有很多中小企业拿PG用于分析业务,
2、成立合肥PG分会,选拔来自邮储、长鑫存储(三星量级芯片生产商)的6位志愿者。由到京带领。
报名人数:1xx
重要议题3:阿里云ADAM+PPAS去O方法论,Oracle迁移上云实践。
重要议题4:神州飞象,杨栋《PostgreSQLHA方案patroni》
重要议题5:PG中国社区主席,太阳塔科技,赵振平《Oracle与PostgreSQL对比学习》
重要议题6:企业辩论赛。
参会企业:阿里巴巴、三一重工、飞象科技、太阳塔、天闻数媒、隆平高科、创友数码、郑州大学、华中科技大学、高阳、上海屹恒、科创医疗、京柏医疗、果壳信息、。。。等。
企业辩论赛回顾:
1、PostgreSQL的count如何加速?
方法1:通过pg_stat_all_tables.n_live_tup可以直接得到当前表的记录数。适合高速全表count()
postgres=#showtrack_counts;track_counts--------------on(1row)selectn_live_tupfrompg_stat_all_tableswhererelname='a';方法2:通过流计算,实时COUNT。例如pipelinedb插件,适合任意count,支持条件过滤、分组等预计算。
方法3:通过并行计算,适合任意count,条件过滤、分组。并行后提速非常明显。
讨论中也提到了MySQL,MySQL并没有并行计算,但是myisam引擎支持较快COUNT全表,不过要注意的是:myisam不支持并行计算,不支持流计算,不支持带FILTER、带GROUP、带DISTINCT的快速count。不支持hashagg,hashjoin等。已经基本上被MYSQL废弃,现在推荐使用innodb引擎。(注意不能因为count快就选择对应的存储引擎,要全盘考虑,包括并发能力,事务能力等。)
摘自互联网:1.myisam保存表的总行数,因此count(*)并且无where子句,很快会返回表的总行数2.myisam保存表的总行数,利用count(column)并且无where子句,并且此column不为null,很快会返回表的总行数3.myisam保存表的总行数,利用count(column)并且无where子句,并且此column可以为null,mysql会对表进行全表或全索引扫描来确定行数4.innodb查询count(*),count(column(notnull)),count(column(maybenull))并且无where子句,mysql会对表进行全表或全索引扫描来确定行数5.myisam和innodb查询count(*),count(column(notnull)),count(column(maybenull))并且存在where子句,mysql会对表进行索引扫描(如果列上有索引)2、大数据,实时计算。适合用什么产品解决?
citus,gpdb都可以.
3、undo,多版本的优劣势。
undo问题:回滚慢,并发较多版本略差,老版本多时访问老版本链条较长,UNDO文件膨胀。
MVCC问题:数据文件可能会膨胀(当表的更新非常多时),索引膨胀(通过HOT技术解决)。
4、PG集群、分片、容灾技术
HA,(patroni)
分片,citus
容灾,流复制
读写分离,pgpool-II
多副本,quorumbasedreplication
5、现场演示了杀掉oracle进程,ORACLE会崩溃。杀掉PG非守护进程,PG数据库会自动启动。如果杀死PG守护进程,如何让PG自动恢复?
首先杀掉PG非守护进程,PG数据库会自动启动。实际上是守护进程的自动恢复功能。postgres=#showrestart_after_crash;-[RECORD1]-------+---restart_after_crash|on可以使用守护进程的守护进程,例如CRON。解决守护进程被杀后不会自动恢复的问题。
6、OOM的问题。当发生OOM时,如何防止由于资源紧张使用时,数据库恢复后,由于资源紧张,进程被不断反复OOM。
cgroup,docker隔离。
HUGEPAGE,解决hashtable问题.
oomadj,设置为不被OOM:PG进程。
如何防止不发生OOM(或尽量避免OOM):
连接池,减少连接数
分区表,减少分区数,访问分区表时,可以减少syscache
内核,使用更多的共享对象(例如syscache,relcache)
设置wal_keep_segments参数,
使用replicationslot
使用归档,都可以。
报名人数:41
重要议题2:阿里云POLARDBOracle兼容版介绍
重要议题3:阿里云PG产品线生态介绍,PG案例,PG的原理、应用场景、优化、管理等内容等。
重要议题4:阿里云ADAM+PPAS去O方法论,Oracle迁移上云实践。
重要议题5:企业辩论赛。
参会企业:阿里巴巴、平安科技、中国人寿保险、成都达测(EDB中国总代)、新华传媒、测绘院、达州广播电视大学、成都派沃特科技股份有限公司、人大金仓、四川融科智联科技、、。。。等。
找到造成CPU100%的进程号,以及对应的父进程,发现父进程为数据库postmaster进程,所以断定是PG发起的进程。
排查pg_stat_activity没有发现对应会话,开启连接审计,排查pg_log的日志,找到了诡异的连接记录,同时发现数据库被创建了几个非业务用户,同时通过大对象植入了C代码到PG实例中,创建了一些异常函数(死循环,一直耗费CPU)。
显然数据库可能被黑。
升级PG版本解决,同时建议pg_hba.conf(数据库ACL配置)不要开放0.0.0.0即使需要开放0.0.0.0也不要开放所有用户,建议限定普通用户通过远程连接。
2、用户使用MYSQL时,发现跑groupby,即使数据量只有百万级别,也要跑很久很久。而换到PG后,即使数据表有千万甚至亿级别,也可以秒出结果。为什么?
PG支持更好的聚合方法,HASHAGG,GROUPAGG,同时支持更好的并行计算能力,使得PG在处理大量数据的时候,比MYSQL占优很多,与ORACLE并肩。
3、PG的SQL执行过程?
解析用户协议包
parsersql
判断是否为DML,DSL的请求,如果是则
rewritequery
generatepath
generateplan
jit(可选)
executeplan
如果是绑定变量的请求:
bindparameter
executepreparedstatement
4、如何查看SQL的执行计划。
使用explain,可以查看当前SQL的执行计划。
5、如何在plpgsql存储过程或函数中创建函数。
使用execute'SQLstring'动态调用的方法,可以在函数中创建函数。例如
postgres=#createorreplacefunctionf_test()returnsvoidas$$declarebeginexecuteformat($_$createorreplacefunctionf_test1()returnsvoidas$__$declarebeginraisenotice'test';end;$__$languageplpgsqlstrict;$_$);end;$$languageplpgsqlstrict;CREATEFUNCTIONpostgres=#\dff_test1ListoffunctionsSchema|Name|Resultdatatype|Argumentdatatypes|Type--------+------+------------------+---------------------+------(0rows)postgres=#selectf_test();f_test--------(1row)postgres=#\dff_test1ListoffunctionsSchema|Name|Resultdatatype|Argumentdatatypes|Type--------+---------+------------------+---------------------+------public|f_test1|void||func(1row)postgres=#\sf+f_test1CREATEORREPLACEFUNCTIONpublic.f_test1()RETURNSvoidLANGUAGEplpgsqlSTRICT1AS$function$declarebeginraisenotice'test';end;$function$postgres=#selectf_test1();NOTICE:testf_test1---------(1row)6、如何修改数据库ACL
通过数据库pg_hba.conf配置文件,配置数据库访问链路ACL。
7、postgresql.auto.conf与postgresql.conf的区别?
postgresql.auto.conf是数据库altersystem动态修改数据库参数的配置文件,altersystem配置的参数会写入postgresql.auto.conf,优先级高于postgresql.conf
扩展问题
为什么postgresql.auto.conf优先级高于
因为先加载postgresql.conf后加载postgresql.auto.conf,后加载的覆盖了先加载的参数。
如何配置了多个重名的参数,哪个为准?
后加载的覆盖先加载的参数。
参数配置的地方,以及优先级:
8、PostgreSQL如何防止绑定变量的执行计划倾斜。
数据库前5次执行计划都是customplan,即每一次都要generatepath,generateplan,并记录下customplan的平均成本,以及customplan发生的次数。第五次后会生成genericplan,当有新的bind时,先使用genericplan计算新的bind的cost,如果cost比customplan的平均成本相差较大(代码内写死相差的比例),则会发起新的customplan,并且统计到customplan的平均COST和计数中。
如果成本相差不大,则继续使用genericplan.
通过以上方法防止倾斜。
报名人数:50
重要议题2:PostgreSQL常用架构介绍
重要议题3:阿里云PG产品线生态介绍
重要议题4:阿里云POLARDBV2.0forPostgreSQL、Oracle介绍
重要议题5:阿里云ADAM+PPAS去O方法论,Oracle迁移上云实践。
重要议题6:PostgreSQL原理
重要议题7:PostgreSQL优化技巧
重要议题8:企业辩论赛。
重要议题1:《PostgreSQL生态与社区工作汇报》
重要议题2:《PPAS+ADAMOracle迁移上云》
重要议题3:《PostgreSQL数据库优化实践》
重要议题4:《阿里云POLARDBforPostgreSQL|Oracle产品演进》
重要议题5:《阿里云自研数据库POLARDB内核技术解读》
重要议题6:《POLARDB的DBA法宝-AAS性能洞察》
重要议题7:《云数据库时空引擎Ganos》
重要议题8:企业数据库辩论赛。
参会企业:电信、海康、武汉商学院、浪沙、海量、支付宝、阿里、壹网、vastdata、微软、大搜车、正泰、点我达、软通动力、朗新、曹操专车、杭州地铁、亚信、悠可、佰安、同花顺、博彦、数蜂、。。。等。
1、QPostgreSQL有哪些锁
A
2、QPostgreSQL有哪几种改参数的方法
altersystem|user|role|database...postgresql.confpostmaster启动参数setlocal事务级参数set会话级参数client连接时带的客户端参数3、QPostgreSQL如何强制设置SQL并行度
4、QPG还有哪些改进点
MVCC机制,PG12已支持AM接口,可以支持更多存储引擎,例如ZHEAP(垃圾版本记录在UNDO文件中,但是事务信息还是在CLOG中,所以还是需要修改hintbit或freeze释放CLOG,否则CLOG会很大)。
分区表很多时性能会下降,PG12已经改进,1000个分区时,QPS依旧可以达到50万以上。
目前存储引擎支持较少,PG12已支持AM接口,接口化之后,会支持更多存储引擎。
5、QREDO/wal文件突然暴涨,可能有哪些原因
检查点太频繁(例如checkpointetimeout,checkpointsegments,max_wal_size太小),并且开启了fullpagewrite,同时写入或更新较多,导致wal中大量fullpage产生。
产生了大量写操作
使用了SLOT,并且这个SLOT对应的接收端(比如从节点)挂了,SLOT位点不动,或者动的慢,导致REDO堆积
VACUUMFREEZE大表,或者事务消耗太频繁而且更新多,并且freeze阈值很小,导致频繁freeze产生大量日志。
maxwalsize设置很大,CHECKPOINT周期设置很长
wal_keep_segments设置很大
archive归档由外部程序完成,但是未及时修改archive_status的archive_name.ready为done,导致不清理
开启了归档,但是archcommand零食设置为空或归档失败,导致不清理.
6、Q表膨胀,可能有哪些原因
频繁修改,并且关闭了自动垃圾回收
频繁修改,并且hot_standby开启了feedback,并且hot_standby有慢事务,这些事务后产生的垃圾(老版本)无法被回收,因为可能这些更早的事务要访问这些老版本。
频繁修改,并且有长事务,很久未结束的2PC事务,慢SQL等。
频繁修改,并且关闭了自动垃圾回收参数。
频繁修改,并且这个表关闭了自动垃圾回收,或者垃圾回收的阈值设置的较大。
7、QPG连接池有哪些改进点
pgbouncer连接池,暂时只支持单CPU
pgbouncer连接池,连接复用的前提是USER\DBNAME相同,无法跨user,dbname复用。
pgbouncer连接池,如果有会话级变量,无法在不同的连接池连接之间切换,例如绑定变量。
8、QMySQL与PG的事务隔离级别区别
RU,脏读,MySQL支持,PG不支持。实际使用中脏读几乎不使用,未提交事务对数据库的修改为什么要被访问?
RC,读已提交
RR(金融行业通常会使用),可重复度,MySQL使用悲观锁实现,并发性差。PG使用快照实现(乐观),高并发性能损耗极小。
SI(金融行业通常会使用),串行事务隔离级别,MySQL使用悲观锁实现,并发性差。PG使用快照实现(乐观),高并发性能损耗极小。
SSI(金融行业通常会使用),严格串行事务隔离级别,MySQL不支持,PG支持。
9、QPG临时文件如何清理,为什么会有大量临时文件
PG临时文件是自动清理的。例如会话退出,自动清理,事务结束自动清理等。看临时文件的属性。如果有某些原因导致了临时文件未及时清理,数据库在启动是会自动进行清理。
为什么会有大量临时文件,例如跑了很复杂的SQL,包含大量数据JOIN,GROUPBY,聚合,排序,可能用到外部临时文件。又或者临时表。
又或者递归查询(数据有问题,导致死循环),会产生临时文件。
对于排序,可以加大WORK_MEM,使用quicksort,不使用临时文件。
10、POLARDB为什么限制100TB,16个计算节点。
产品设置,权衡了市场需求,以及当前架构下,提供一个安全可靠的集群规模。
报名人数:54
重要议题2:《Oracle迁移上云》
重要议题5:《POLARDB的DBA法宝-AAS性能洞察》
重要议题6:《云数据库时空引擎Ganos》
重要议题7:企业数据库辩论赛。
参会企业:斑马快跑(出行)、中移智行、武汉斗鱼、湖南图为、北京华宇信息、武汉商学院、浩星科技、唯晟商贸、爱可生、携宁计算机、海康威视、烽火通信、恒生、武汉数趣信息、武汉达梦、DXc、湖北楚天、武汉国为、太平金融、德安、传神语联网、linktime、湖北省图书馆、武汉易瑞特科技、易起飞科技、宁美国度、南京中软软件、企易共创、天玑科技、武汉通威、Farfetch、湖北电视台、今天梦想、湖北工业大学、天源迪科、。。。等。
PGplus队与PGpro队进行了激烈的角逐。问题汇总如下:
1、Qmysql如何准实时同步到PG
A使用阿里开源的Otter,解析BINLOG,使用PG语法封装SQL,在PG中回放。
用户使用cluster后,效率可以改善,有没有其他办法。
A本质的原因是用户查询的多条记录分布在HEAP表的不同PAGE里面,使得一次查询要扫描很多数据块。并发高,IO开销大,内存带宽高。
includeindex,或使用聚合存储
3、Q企业中如何权衡开发者和DBA的权限和关系,遇到开发写得烂的SQL,领导叫DBA去又不愿意。如何权衡。
A明确DBA和开发者职责和KPI,有奖有罚
定义操作规范、
定义业务上线、下线标准
定义商业化规范
附能开发者,提高开发者能力
DBA能力产品化
建立SQL审核标准
建立测试环境
建立预发环境
灰度上线
建立线上真实数据测试环境(例如备库)
4、QPostgreSQL相比其他开源数据库有什么优势
APG有GIN倒排索引,可以支持全文检索、模糊查询、相似搜索、JSON高速检索等
PG的处理能力更强,支持并行计算,高并发。支持更丰富的JOIN、聚合算法。
PG的扩展能力更强,支持专业的GIS、机器学习、全文检索、图像搜索等等。
PG是纯社区的数据库,没有被商业公司控制。
PG的开源许可更加的友好,使用无风险。有些公司的产品也开源,但是被商业公司控制,需要注意开源协议。使用需要注意法律风险。
5、Q被SQL注入了怎么办?
A尽快通知DBA,保留备份,防止扩大影响
报警,通知领导
下业务,防止扩大影响
修BUG:
应用开发使用绑定变量,不要用SIMPLEQUERY
使用WAF,应用防火墙
6、QORACLE的ASM存储,在其他生态中有没有替代产品?ASM支持块设备管理,任意损坏都不会影响可用性、可靠性。例如坏一块盘之后,数据会自动重分布,只是容量变少。1、块设备shard(extent)化2、每个shard(extent)在多个BLOCK设备之间冗余,例如3副本。3、坏盘后,自动重分布shard(extent),依旧有3副本4、对于整个ASM存储集群来说,只是容量变小,但是冗余度不变。5、加盘后,自动重分布,容量又回来了。达到的效果:不管怎么坏盘,保持rto=0,rpo=0
A分布式存储
POLARDB
polarstore
阿里云盘古
7、QPG对文本挖掘有没有好的支持?
A分词、情感词、归类,PLPYTHON,MADLib
8、Q为什么有的书籍不建议使用PG自定义函数、存储过程,建议直接写SQL,不建议用存储过程?
A首先要分清楚应用场景,千万不要断章取义。
存储过程支持自动的绑定变量,所以存储过程内的SQL执行5次后会自动缓存通用执行计划。
如果是高并发查询,建议用绑定变量。减少硬解析的开销。
如果是低并发(AP)应用,建议用SIMPLEQUERY。
存储过程里面也支持动态SQL,使用动态SQL时强制用硬解析
或者使用plan_cache_mode参数
9、Q对于数据库使用过程中,如果出现BLOCK损坏怎么办?
1、跳过损耗数据块,可以继续查询
2、通过备份修复。
没有备份的话,在REDO中找到这个数据块最近一个FULLPAGE,从FULLPAGE拷贝,加上之后这个PAGE的所有REDO进行恢复。
10、Q数据库使用过程中,经常发现“表没了”,在pgadmin查询表没了。但是在应用程序中能INSERT进去,应用是insertintotablevalues()
1、如果真的被删了,开启SQL审计,检查是谁干的.
2、search_path可能不对。在pgadmin中查看的SCHEMA下没有这个表,可能在其他SCHEMA里面。
可以在pg_class或pg_tables里面找一下,是不是在其他SCHEMA里面
11、Q深圳中电的业务,很多智能电表上传数据,由于数据量太大,使用了按天分区,但是表分区太多了,查询慢。
APG12原生分区表,性能已经基本无损。
老版本使用pg_pathman,性能也基本无损。
最后PGplus队胜出。
报名人数:188
重要议题2:《PostgreSQL数据库优化实践》
重要议题3:《阿里云POLARDBforPostgreSQL|Oracle产品演进》
重要议题4:《POLARDBforPG内核解析》
参会企业:瀚高、浪潮、济南联桥、涌之汇、第一创客、VigorJourney青年文化社区、济南森魔、济南英网、联通(山东)产业互联、山东英网、阔想、中国移动、福生佳信、济南长扬智能、betterman、wigix、上海格尔、济南智学酷信息、北京眼神、济南长扬智能、山东华链医疗、山东省城市商业银行合作联盟、山东云天安全、艾佳猫科技科技公司、ARM、济南别样信息科技有限公司、北京爱国小男孩、山东诺方电子、山东蓝瑞、山东省城市商业银行、斯陶、山东联房、顺势鸟、山东电邦、上海新炬、新华医疗、山东路基、大鹏教育、通九湾金融、中科软、中翼物联、神州数码、河南明希供应链、浪潮国际、山东英才、北京青苔、山东金穗林大数据、cmcc、人寿保险、优讯信息、山东大众海蓝、济南品盛软件、积成能源、山东图南、中国联通软件研究院、山东微讯信息咨询有限公司、山大地纬软件、山东捷构、leSu、TELD、山东众阳、山东领亿、山东优加利、德华安顾人寿、明日之星、知金大鹏、。。。等。
大象队与蜂巢队进行了激烈的角逐。问题汇总如下:
1、Q长事务对ORACLE和PG的影响
ORACLE:UNDO膨胀,如果挂了,恢复可能会比较慢。
PG:长事务开始之后产生的垃圾,无法被回收。可能导致表膨胀。同时可能导致VACUUM无用功耗费CPU和IO。
2、QPG如何实现PG两地三中心。
使用流复制创建两地三中心结构。quorumbasedsyncreplication。
3、QPG如何做HA
patroni
4、QPG如何做负载均衡
读写分离:pgpool-II(建议只用pgpool-II做读写分离,不要用它做复制,不要用它做HA)
写负载均衡建议使用citus,antdb。
5、Qredis4的版本删除大的KEY为什么慢。
我们知道Redis的工作线程是单线程的,如果一个command堵塞了,那所有请求都会超时,这时候,一些骚操作也许可以帮助你。
其实如果想删除key,可以分解成2个目的,1:不想让其他人访问到这个key,2:释放空间。
那其实我们可以分解成两步,先用RENAME把原先的keyrename成另一个key,比如:
RENAMEuserInfo:123"deleteKey:userInfo:123"然后可以慢慢去删"deleteKey:userInfo:123",如果是set,那么可以用SREM慢慢删,最后再用DEL彻底删掉。
这里可以搞个task去SCANdeleteKey:*,然后慢慢删除。
6、Qredis5通过什么方法加速查询,原理是什么。
7、QPostgreSQL的geometry的数据如何被maxcompute使用。
使用geojson,主要是maxcompute目前只能识别geojson.无法识别wkt格式。
8、Qoracle里面的arcgis类型,使用某些数据同步工具(HVR)同步到其他产品,发现在写入目标ORACLE后丢精度。为什么?
建议查看目标端写入代码,可能是写入过程中丢精度了。
8、Q建索引的时候会堵塞DML,PG怎么避免
reindex或createindex的时候使用CONCURRENTLY
tablespace压缩,使用文件系统压缩。例如ZFS。
列存储引擎,压缩。toast压缩。等。
table垃圾空间压缩,vacuumfull或pg_repack在线压缩。
10、Q阿里POLARDB如何解决PG的写审计日志性能问题
写日志使用单线程pipe改成了多线程,解决了写性能问题。几乎没有性能影响。
参与人数:2800
企业圆桌深入研讨,相比传统IT峰会,对企业来说可以摄取更多信息量。
长远影响预计:1万+人次
每周在PG钉钉群直播,欢迎加群。
PostgreSQL与GPDB在OLTP|OLAP、空间数据管理、图式搜索、全文检索、文本搜索、特征搜索、时序应用、流式数据处理、用户画像分析等场景的应用案例。
“新零售、共享单车、生物科技、网站、企业CRM、新零售、医疗、GA”等行业应用案例,业务痛点以及数据库“多值类型、UDF、全文检索、模糊搜索、相似搜索、多字段任意搜索、sharding、异步并行”等技术的应用。
“电商、导购、新零售、搜索、数据分析、数据运营、金融、物流、物联网、LBS、导航、智能配送、稽侦、旅游、舆情、风控、医疗”等行业应用案例,业务痛点以及数据库“数组、文本特征、图片特征搜索,多值标签搜索、BITMAP搜索、时序数据搜索、时序数据实时统计、空间数据管理、电子围栏、KNN搜索、实时位置更新、路径规划、点云,文本情感词挖掘,PythonUDF,图式搜索、递归查询”等技术的应用。
“共享充电宝实时经营分析、电商秒杀、实时用户画像、实时业务监测与聚合、流式预警、多机房业务部署”等行业应用案例,业务痛点以及数据库“容灾、逻辑订阅、物理订阅、单元化、sharding,外部表,DBLINK,批量流计算、实时流计算、HLL估值计算,秒杀,ltree,RTREE”等技术的应用。
阿里云PostgreSQL,PPAS产品开发、管理实践,包含“SQL防火墙、资源隔离、AWR、VPD、物化视图、分页、数据清洗与转换、数据采样、加密、约束、去重、模糊查询、并行计算、批量DML、索引接口的选择与原理、ADhoc查询优化、函数稳定性原理、并发索引”等内容。
阿里云PostgreSQL,PPAS产品开发、管理实践,包含“SQLHINT,TOPSQL,慢SQL诊断,执行计划,plpgsql函数诊断与DEBUG,判断有无,事务可靠性与性能设置,RDSPG资源管理,防雪崩,DDL操作建议,锁等待,限制慢SQL并发,杀会话和SQL,防DDoS和暴力破解”等内容。
阿里云PostgreSQL,PPAS产品开发、管理实践,包含“数据同步,数据订阅,跨库访问,外部表,分区表,定时任务,执行计划,CBO成本因子,优化器,JOIN优化,遗传算法,递归查询,图式搜索,空间查询优化,空间索引,空间数据库使用建议”等内容。
阿里云PostgreSQL,PPAS产品开发、管理实践,包含“数据老化实践、多级存储、冷热分离、数据库逻辑架构、数据库权限体系、服务端编程、行级、列级权限、数据膨胀的原理、监测、预防、处理,FREEZE原理、FREEZE风暴、预防FREEZE风暴,分区建议,可定义SLA的备份与恢复设计,跨版本升级,数据库监控指标与监控手段,多实例管理,海量测试数据的构造,压测数据库,从其他产品迁移到PostgreSQL”等内容。
阿里云HybridDBforPostgreSQL产品开发、管理实践,包含“实时、批量ETL,数据写入性能优化,分布键、分区键的原理和选择,行存与列存的原理和选择,数据重分布原理与多阶段计算介绍”等内容。
阿里云HybridDBforPostgreSQL产品开发、管理实践,包含“分级存储,索引接口的原理和选择,统计信息调度,队列管理,执行计划阅读,METASCAN,大吞吐数据导入导出,滑窗分析,数据倾斜的查看和预防,锁等待,数据膨胀和清理,行存列存格式转换,数据类型的选择建议,连接池”等内容。
参考文档、视频、软件等,包含“开发规约、产品选择文档、产品文档,图形化管理软件,开发驱动,社区文档,开发者指南,开发者手册,GIS文档,可视化分析软件,认证与培训资料,最佳实践,机器学习,日志维护与性能诊断,Oracle兼容性,培训视频集合”等内容。
总时长:约12小时
开发者、DBA、架构师。
通过学习本课程:
架构师,可以了解到“物联网、电商、生物科技、游戏、传统企业、CRM、ERP、ZF、GA、物流、音视频、BI、社交、金融、证券、手机、天文”等行业在“OLTP|OLAP、空间数据管理、图式搜索、全文检索、文本搜索、特征搜索、时序应用、流式数据处理、用户画像分析”等场景对数据库的需求和业务痛点,了解如何使用阿里云PostgreSQL与HDBPG解决业务的需求和痛点。
开发者和DBA,可以了解数据库的“多值类型、搜索、ADHOC查询、横向扩展、异步并行、特征搜索、画像搜索、时序数据实时处理、空间数据管理、电子围栏、KNN搜索、实时位置更新、路径规划、点云,文本情感词挖掘,PythonUDF,图式搜索、递归查询,容灾、逻辑订阅、物理订阅、单元化,外部表,dblink,流计算、HLL估值计算,秒杀,ltree”等特性,以及“开发、管理”等最佳实践。
敬请期待
Oracle中国研发中心解散,什么数据库最适合替代Oracle,并且在技术架构上领先于传统数据库,支持企业的长期发展?
PostgreSQL作为最先进的企业级开源数据库(类似BSD的开源许可,可以自用、分发无法律风险,不用担心PG被收购,不用担心PG被一家独大的公司控制。),在稳定性、性能、可用性、可靠性、容灾、安全性、扩展性等方面比肩Oracle,被业界称为“开源界的Oracle”。我们熟知的平安集团、邮储银行、中国人寿、苏宁、中兴、华为、阿里巴巴、亚信、富士康、探探、去哪儿......等众多大型企业、互联网公司已纷纷将PG应用于企业业务系统。
为帮助企业掌握去O能力。阿里云数据库团队、PG社区、云栖社区、云栖TechDay、阿里云技术创新中心共同推出《PG天天象上》活动,涵盖《PostgreSQL案例、原理、最佳实践》、《Oracle迁移上云》、《客户案例》、《企业数据库辩论赛》等系列主题。
2018年9月开始,《PG天天象上》活动在杭州,北京,郑州、广州、深圳、上海、南京、合肥、长沙、成都、温州多地开展,覆盖数万人次,参会者汇聚了银行,证券,互联网,人工智能,高校,医疗,新制造,电商,游戏,政府,电力等行业的开发者,DBA,架构师,CTO,CIO。
欢迎参加。
2、激烈辩论:帮助企业深度梳理企业IT架构,就企业数据库安全合规、自主可控、成本、架构演进等问题进行深度研讨。
学生、开发者、数据库管理员、架构师,CTO,CIO,技术总监。
下午1、13:30~14:00阿里云-digoal《阿里云POLARDBforOracle|PG演进》30min2、待定议题库
阿里云ADAM产品经理。
企业去O源动力到底在哪里?为何屡试屡败?
阿里去O成功经验到底能不能复制?
去O的三大痛点,如何各个击破?
阿里云数据库专家
带你了解POLARDB的研发历程,如何在POLARDB的计算存储分离架构中,支持PostgreSQL和Oracle兼容引擎。
Ganos的总体介绍,与PostGIS的区别,在专业时空场景中,如何将移动对象数据库(MOD)做到比开源50倍的性能提升。