• [活动公告] 【有奖征文 第28期】华为云GaussDB:与数据库同行的日子,分享你的故事和技术经验,赢千元大礼包!
    云计算时代,云数据库的需求和技术也在不断的发展,华为云数据库GaussDB是华为自主创新研发的分布式关系型数据库。该产品具备企业级复杂事务混合负载能力,同时支持分布式事务,同城跨AZ部署,数据0丢失,支持1000+的扩展能力,PB级海量存储。同时拥有云上高可用,高可靠,高安全,弹性伸缩,一键部署,快速备份恢复,监控告警等关键能力,能为企业提供功能全面,稳定可靠,扩展性强,性能优越的企业级数据库服务。为了让各位开发者0距离体验GaussDB、GaussDB(for MySQL)等产品,特举办《与数据库同行的日子》有奖征文活动,提供一个沙箱实践和一个实操手册,以便大家可以更好地学习和使用华为云数据库产品。☞参与规则第一步:体验GaussDB、GaussDB(for MySQL)等产品点我进行沙箱实验- GaussDB数据库应用程序开发实验点我获取现网实操- GaussDB(for MySQL)场景化综合应用实验(见文末底部附件)点我前往产品免费体验区-云数据库第二步:围绕如下主题之一发表文章① 产品体验:体验GaussDB、GaussDB(for MySQL)等产品,撰写产品体验反馈,如体验感受,使用后建议,操作使用方法等内容。② 最佳实践:分享在使用华为云GaussDB、GaussDB(for MySQL)等产品过程中,解决痛点问题或者完成应用开发实践的案例,进行性能优化、预测性维护、风险排查、NL2SQL等的实践内容。③ 技术攻坚:分享在数据库技术攻坚过程中遇见的技术和理论的难题、解决方向、以及成功的解决方案等内容。④ 人物图鉴:分享与数据库相关的身份在生活和工作中的故事,内容用到的技术手段、收获的感受、困惑和奇思妙想等,比如“数据库应用开发的一天”。☞格式要求1、标题必须以【华为云GaussDB:与数据库同行的日子】结尾,例如华为云GaussDB性能优化【华为云GaussDB:与数据库同行的日子】2、文章需打上【云数据库GaussDB】/【云数据库GaussDB(for MySQL)】/【云数据库GaussDB(for Redis)】/【云数据库GaussDB(for Influx)】/【云数据库GaussDB(for Cassandra)】的标签(至少包含一个) 3、文章末尾需加上活动名称及链接地址,如:我正在参加【有奖征文 第28期】华为云GaussDB:与数据库同行的日子! 链接:4、建议投稿内容字数不少于500字(不含代码段),语句通顺、文章逻辑清晰、排版整洁、代码规范,尽量图文并茂(有技术架构图或者分析图等做支撑)。5、文章保证原创首次发布,如发现投稿内容为转载、复制、抄袭、恶意拼接、灌水等侵权作弊行为,均视为无效并取消参与资格。6、文章须符合征文主题及平台内容规范,不得出现违规负面内容。详见华为云开发者平台内容互动使用协议。7、 参加征文活动的文章作者拥有著作权,华为云拥有使用权、修改权等。点此立即发表博文· 以上奖品均为实体奖品,具体视出库情况而定。☞评分规则专家评分依据 :文章篇幅、经验含金量、排版美观度、阅读量、点赞、收藏等指标综合评分。其他说明: 1、一二三等奖不能叠加。 2、参与奖不与一二三等奖叠加。 3、本期征文的一二三等奖对应四个主题方向分别设置1名、2名和7名。 4、有奖征文投稿数量不计入月度激励活动(即社区明星评选)文章数量。☞你将获得什么?我们会把收到的优质内容汇编成册,并注明原作者,积累行业口碑,开放给圈内开发者下载查阅,提供实践参考。对于贡献优质内容的作者,我们还将送出各项大礼!同时,在华为云站内外10+个技术社区醒目位置进行推荐,给与百万级流量资源。优质作者更可获得长期约稿和更多内容合作机会。☞问题咨询如果有任何问题,可扫描下方二维码咨询。添加微信时请备注:有奖征文+华为云博客昵称!如果大家在征文中遇到有关华为云产品体验方面的问题建议,请到【云声平台】提出您的宝贵建议,标题以【云驻计划-定向征文】开头,还有机会赢取额外奖励。快来华为云社区博客,一起遨游技术海洋吧! 点击立即体验☞部分奖品展示定制保温杯 定制保温杯 游戏机礼盒 定制双肩包 手机支架 定制折叠雨伞 定制连帽卫衣 定制笔记本 定制笔记本
  • [问题求助] GaussDB200安装系统版本要求
    根据提供的安装文档信息,要求的操作系统如下图请问centos7.5的能不能安装
  • [技术干货] 云上镇魂街,以守护之名,邀你热血入局
    作为领先的全球化IP游戏运营商,中手游以IP为核心,通过自主研发和联合研发,为全球玩家提供精品IP游戏,打造极具竞争力的IP游戏生态体系。《镇魂街:天生为王》是中手游改编自经典热血国漫IP《镇魂街》的新国潮将灵共战动作手游,其独特的将灵共战体验,成为备受众多国漫粉丝和动作游戏玩家喜爱的新势力精品手游,上线前全渠道预约破700万。百万级预约量,系统如何支撑?中手游在全力保证《镇魂街:天生为王》原汁原味的IP内容的同时,采用ARPG(动作角色扮演类游戏)+将灵共战的创新玩法,让原著粉丝与广大玩家都可以沉浸式体验到《镇魂街》IP的魅力。但新玩法也对服务器的性能、扩展、稳定性提出了新的需求,作为支撑整款游戏的底层数据库在技术方面也面临不小的挑战。高性能:700万预约量,上线首日服务器压力大,有爆服风险,需要一款极高性能的数据库作为支撑;稳定性:共战玩法对数据库的稳定性要求极高,对时延的容忍度极低,时刻需要高稳定、低时延的数据访问来保障玩家体验,不然会极易导致用户流失;弹性扩容:网络游戏作为一个大型、高并发的应用系统,其运行过程中面临着巨大的性能压力和技术挑战,在业务量高并发场景下,玩家访问量突增,同时在线人数迅速飚高,如何在短时间内支持数据库批量规格变更扩缩容成为游戏发行商的一道考验,而批量扩容可以使数据库支持更多的业务量访问。极速上线,华为云GaussDB(for MySQL)让您畅享超燃体验针对客户需求,华为云数据库团队采用了云原生数据库GaussDB(for MySQL)+文档数据库服务DDS组合解决方案,DDS用于存储玩家数据,包含玩家账号、战斗信息等; GaussDB(for MySQL)主要存储战斗信息日志(游戏战斗信息是游戏业务核心数据),并通过其自带的读写分离、高性能、批量变更等能力,高效支撑《镇魂街:天生为王》手游极速上线,助力玩家畅享超燃体验。读写分离,轻松应对流量洪峰华为云数据库采用读写分离代理的方案,对游戏中玩家需要读取的数据和写入的数据进行分流,有力分散了百万级流量洪峰的压力,且使用的GaussDB(for MySQL)性能较开源MySQL最高提升7倍,在流量洪峰的压测场景,性能表现持续稳定可靠,游戏首发持续高峰运行至今,数据库持续表现稳定。超低时延,业务稳定可用华为云GaussDB(for MySQL)存算分离架构,并搭配创新研发的DFV分布式存储技术,对云数据库存储容量进行扩充,达到最高128TB的海量数据存储空间,领先于国内外同类别产品的容量水平,能满足玩家产生的数据存储需求;NDPQ算子下推技术,在存储层进行数据的查询和计算,再返回应用,极大提高数据库的查询性能,降低了IO带宽,实现毫秒级低时延;基于DFV存储的三副本架构,实现数据强一致,并为客户所有现网生产实例创建容灾实例,业务发生故障可实现秒级恢复,有效保障业务的连续性和稳定性。批量规格变更,对业务无感针对游戏需要批量运维的场景,华为云数据库提供了批量规格变更能力,当数据量过大时,GaussDB(for MySQL)可对磁盘空间进行快速扩容,而且对业务无感知,扩容期间,服务不中断,大幅度提升了数据库运维效率,降低了运维成本。在华为云数据库的强力保障下,《镇魂街:天生为王》业务快速上线,1个月内完成游戏内测至上线全流程,流程缩短了50%;游戏上线首日,支撑百万游戏用户同时在线,游戏稳定运行不中断,上线首日荣登华为应用市场游戏热榜Top1。随着游戏市场的迅猛发展,打造精品化手游、跨界创新成为游戏厂商重要的考量。未来,中手游将持续深耕IP文化,通过技术赋能解锁IP游戏更多新玩法,华为云数据库也将继续携手中手游,共同打造更多游戏精品,给用户创造更极致的游戏体验。
  • [问题求助] 去IOE的政策
    目前国家对去IOE这块的政策,有谁有了解么?谁能给详细讲讲。
  • [问题求助] 关于高斯update语句更新后,查询的数据会发生位置变化的问题
    我有个表t,表结构是自增id,列c1,列c2。一共有10条数据。现在有个问题就是,如果是mysql直接对这个第5条进行update,更新完成后这条数据用select查询这个第五条还是在原来位置,但是高斯不是这样,update更新了第五条后,这条数据查出来就是在第10条的位置上了,原来在第六条的位置依次上移,就比如开始是1,2,3,4,5,6,7,8,9,10这样显示的结果,变成了1,2,3,4,6,7,8,9,10,5这样。目前就是想问,高斯这里update语句能不能像mysql一样,更新后位置不变,还是原来的默认排序?谢谢
  • [技术干货] 华为云云原生数据库走进新加坡,迈出国际化坚实一步
    8月4日,新加坡云原生技术沙龙活动顺利召开,大会邀请了新加坡本地互联网行业、大企业等领域数十位领导和专家参会,共同探讨新加坡数字化转型路径。华为云数据库服务产品部解决方案总监张虎出席并分享了华为云在云原生数据库的创新技术和优秀实践,让企业离应用更近一步,加速云原生数据库在海外落地。云原生数据库是大势所趋将成为企业上云首选张虎表示,随着互联网技术的发展,企业催生了许多新的业务模式,如电子商务、互联网游戏、数字银行、物流等。新应用、新场景带来了新的业务诉求,而传统数据库面对客户高时效、高可用、混合负载、高性价比等新诉求却显得无力。因此,以应用为中心的云原生数据库应运而生。云原生数据库,具备敏捷智能的天然优势,能够让应用更智能、更高效地使用数据库,很好地解决了数据同步、数据存储和处理、数据库高效管理等问题,成为了越来越多客户更加坚定的上云首选。围绕云原生三大方向华为云打造以应用为中心的云原生数据库面对企业新诉求,华为云对数据库内核和架构进行了重构,基于云的架构构建了“生于云 长于云”的云原生数据库,并提出云原生数据库三大方向:Serverless打造极致的弹性。客户在遭遇故障、规格变更时,整个资源弹性调度速度可以从分钟级缩短到秒级,实现数据库弹性伸缩业务无感知。目前华为云GaussDB(for MySQL) 已实现全栈无感Serverless,能按照新的算力单元计费,极大提升了资源使用效率。Regionless让全域数据可用。客户业务可以在任意地方进行接入和访问,同时带来跨地域的高可用,并保障数据就近访问,缩短响应时间,提升用户体验。Modeless带来极简体验。通过提供一个统一的入口,智能选择合适引擎处理业务请求,并实现多模数据自动转换,让数据处理和管理变得更简单。以云原生架构为代表的华为云关系型数据库GaussDB(for MySQL)和非关系型数据库GaussDB NoSQL,较同类开源数据库具备极大优势。比如GaussDB(for MySQL) 100%兼容MySQL 8.0,性能较开源提升7倍,跨Region数据实时灾备,最高支持128TB的海量存储,可实现超百万级QPS吞吐。GaussDB NoSQL支持Redis、MongoDB、InfluxDB和Cassandra四款引擎,打造了高扩展、高性能、高可靠、海量存储、强容灾等能力,高效管理多样化海量数据。华为云云原生数据库在场景锤炼中不断成熟华为云云原生数据库已经在互联网、电商、游戏、汽车制造等行业得到广泛应用,历经千行百业严苛场景锤炼,助力更多企业实现敏捷化管理。譬如在华为终端云改造中,GaussDB(for MySQL)和GaussDB(for Cassandra)等云原生数据库以及GaussDB数据库,共同助力其打造了稳定高效的服务平台, 目前已经上线共3000多实例,16000多节点,11PB的数据量,有效支撑了终端云服务万亿级数据记录,百万级QPS的业务量,整体资源利用率和运维效率相比之前提升30%。云原生浪潮汹涌,并逐渐走入越来越多的行业核心场景。华为云数据库也将继续围绕Serverless、Regionless、Modeless三大云原生方向持续技术演进,不断打磨云原生数据库能力,打造企业核心业务云化的智能数据基座,实现客户像使用水电一样使用数据库。
  • [技术干货] 华为云云原生数据库,让企业离应用更进一步
    7月9日,华为开发者大会2023(Cloud)期间,华为云举办“云原生数据库,‘Less哲学’让开发者离应用更近一步”的专题论坛。华为云数据库服务产品部副总经理庄乾锋携手两位华为云数据库技术专家,并联合顺丰客户,共同分享了云原生数据库未来演进方向、华为云云原生多模数据库的创新、全链路智能化解决方案,以及顺丰的云原生优秀实践,让企业和开发者离应用更近一步,加速云原生数据库的落地。多模融合,极简体验,华为云打造以应用为中心的云原生数据库庄乾锋表示,新应用、新场景带来了新的业务诉求,客户渴求更好地解决数据同步、数据存储和处理、数据库高效管理等问题的解决之道。而以应用为中心的云原生数据库,具备敏捷智能的天然优势,能够让应用更智能、更高效地使用数据库,促使越来越多用户更加坚定地选择了云原生数据库。面对企业新诉求,华为云数据库提出了云原生三大方向:Serverless打造极致的弹性,通过ALT应用无损透明倒换、应用弹性透明调度、应用透明集群等技术,保障数据库弹性伸缩业务无感知;Regionless让全域数据可用,Global Database、全域分层式引擎、全域一致性集群等技术,保障数据高可用、数据就近访问;Modeless带来极简体验,通过模型处理总线、HTAP、NDPQ等技术,智能根据业务负载选择合适引擎处理业务请求,并实现多模数据自动转换,让数据处理和管理变得更简单。以云原生架构为代表的华为云关系型数据库GaussDB(for MySQL)和非关系型数据库GaussDB NoSQL,在生态开放、弹性扩容、性能提升、高可用等方面,较开源数据库具备极大优势。比如GaussDB(for MySQL) 100%兼容MySQL 8.0,实现分钟级扩容,性能较开源提升7倍,两地三中心架构设计,具备跨Region数据实时灾备,最高支持128TB的海量存储,可实现超百万级QPS吞吐。华为云云原生数据库已经在电商、游戏、汽车制造等行业广泛应用,助力更多企业实现敏捷化管理。比如支撑梦饷集团打造一体化电商平台,实现数据库运维效率提升约30%,每秒成交的订单数创历史新高,为200万店主、10000+品牌、2.5亿商品提供了高效的服务。游戏行业,华为云GaussDB(for Redis) 是最佳的游戏数据库选型,加速了《迷你世界》去中心平台化,实现5倍性能提升,轻松应对20倍业务高峰变化,亚毫秒级时延稳定无抖,高效支撑千万级用户同时在线畅玩。云原生多模融合,高效管理多样化海量数据华为云数据库NoSQL产品架构师余汶龙表示,随着企业业务的发展,传统NoSQL数据库在容量、性能、扩展性、可用性、运维等方面出现挑战,企业呼唤更稳定可靠、更易用、更加降本增效的NoSQL产品。华为云GaussDB NoSQL通过云原生存算分离架构设计,支持四款非关系型数据库引擎,分别兼容Redis、MongoDB、InfluxDB和Cassandra,打造了高扩展、高性能、高可靠、海量存储、强容灾等能力。强扩展:支持计算、存储分别按需扩容。计算扩容时,业务仅秒级抖动,扩容耗时分钟级;存储扩容时,业务无感知,耗时为秒级,支持一键扩缩容。分级存储:冷热数据自动交换,应用零改造,支持指定热数据到期时间,灵活调整冷热分离线。多租户管理:集群最高支持6万+数据库,支持DB级权限隔离,清晰的多租户权限隔离设计,易于DBA管理。强容灾:支持同城双活数据库中心容灾解决方案、两地三中心容灾解决方案,且支持双向同步,具备全量+增量同步、key保序、可靠传输、断点续传等特性,提供了企业级容灾解决方案。华为云GaussDB NoSQL当前已历经电商、游戏、泛互联网、社交文娱等行业核心业务锤炼,打造了极致稳定、高效可靠的数据库服务。比如游戏行业,华为云GaussDB(for Redis)支撑《余烬风暴》强势上线,时延稳定无抖,首日对战高峰实时扩容,对业务零影响。在内部,华为云GaussDB(for Cassandra)助力华为终端云高效管理10000+个Cassandra节点,轻松处理每秒1000万+业务请求量。云智能DBA助手、Serverless,打造全链路数据库智能化体验华为云数据库高级产品经理周家恩表示,数据库技术车轮滚滚向前,数据库演进方向也从云化转向云原生化、智能化,云原生数据库与Serverless的结合,进一步加速了云原生数据库的演进,数据库运维方式也随之变化。作为国内领先的云原生数据库典范,华为云GaussDB(for MySQL) 已实现全栈无感Serverless,带领云原生数据库进入智能时代。GaussDB(for MySQL)能按照新的算力单元来计费,打破了传统以固定规格售卖的商业模式,客户可直接对自己的实际使用量进行付费;Backtrack极速闪回功能,实现TB级数据分钟级完成回溯; Global Database突破地域限制,实现数据全球就近访问和容灾;NDPQ智能并行计算,查询响应时间提升数十倍。华为云还打造了云智能DBA助手,提供了SQL诊断、参数调优、智能索引推荐等系列运维能力,大幅度提升了开发、运维人员的效率。比如,实时性能和会话监控查询功能,及时发现数据库异常并提供快速解决建议,提升实例稳定性;容量预估功能,可以根据历史容量信息预估空间增长,提供表智能诊断、智能扩容;自治限流功能,自动检测到数据库CPU等异常,根据既定业务优先级等进行限流处理,保证核心业务的稳定运行。云原生数据库,解码智慧物流“速递”的秘密顺丰科技数据库专家王操表示,顺丰快递是国内领先的快递物流综合服务商、全球第四大快递公司,一直在积极利用科技赋能顺丰技术创新,为客户提供涵盖多行业、多场景、智能化、一体化的智慧供应链解决方案。为了提升物流管理效率,顺丰基于云原生数据库重新打造了智慧物流管理平台,顺丰云数据库管理平台具备集群管理、高可用、容灾服务、资源管理、运维生态、自动化变更等能力。集群管理方面,我们能够快速地对信息进行检索,自动排除部分风险;高可用方面,通过日志模块、数据管理等运营服务,长链接模块、修复模块等服务来检查数据库状态,快速检索并修复异常;容灾方面,打造了整体化容灾方案,可以快速检索到异常信息,并自动修复;资源管理方面,打通各层资源,进行整体资源融合,实现公共能力的复用;自动变更方面,通过构建一个运营工作台,同时打通整个流程,集合所有资源信息,再通过自动化的变更流程,减少大量的人工沟通和变更的时间。顺丰致力于构建数字时代的智慧供应链生态,云原生数据库的加持,进一步提升了物流管理效率,为消费者提供更便捷、更可靠、更贴心的服务。云原生数据库正逐渐成为数据库行业的“宠儿”,也在越来越多的行业场景发挥重要的价值。华为云数据库将始终践行云原生理念,围绕Serverless, Regionless, Modeless三大方向持续打磨云原生能力,更加贴近客户业务的现实需求,让云原生数据库更广泛地进入千行百业,进一步推动企业数字化转型。
  • [常见问题汇总帖] Invalid or unsupported by client SCRAM mechanisms
    目前我们的sonarqube版本是8.7,opengauss的版本是3.0.2,我想用sonarqube连接opengauss数据库,但是报错,如题,该怎么解决呢
  • [技术干货] 执行计划缓存,Prepared Statement性能跃升的秘密
    引言在数据库系统中,SQL(Structured Query Language)语句输入到系统后,一般要经历:词法语法解析(parse)、重写(resolve)、优化(optimize)、执行(execute)的过程。词法语法分析,重写和优化,这三个阶段会生成SQL语句的执行计划 (plan)。当SQL语句存在多种执行计划的时候,优化器会从这许多的执行计划中挑选出一个它认为最优的(通常是占用系统资源最少的,包括CPU以及IO等)作为最终的执行计划供执行器执行。生成执行计划的过程会消耗较多的时间,特别是存在许多可选的执行计划时。图1:SQL语句执行 Prepared Statement是将SQL语句中的值用占位符替代,可以视为将SQL语句模板化或者说参数化。当执行PREPARE语句时,传统MySQL将对指定的语句进行词法语法解析和重写,如上图①②。该阶段称为预编译阶段。Prepared Statement的优势在于一次编译、多次运行,省去了预编译阶段需要的时间。随后发出EXECUTE命令时,MySQL将对编译阶段生成的结构执行优化,即上图的③,生成对应的执行计划并执行,把输出结果返回到客户端。例如:PREPARE stmt FROM ‘SELECT * FROM t WHERE t.a = ?’;SET @var = 2;EXECUTE stmt USING @var;传统MySQL的Prepared Statement只会节省SQL语句的解析及重写过程需要的时间,但是对于一条SQL语句,如文章开头所述,优化SQL语句并生成执行计划需要耗费大量的资源以及时间。如果能将该Prepared Statement语句对应的最终执行计划进行缓存,当执行EXECUTE语句的时候,就可以直接使用已缓存的执行计划,从而就可以跳过SQL语句生成执行计划的整个过程,进而可以提高语句的执行性能。为此,GaussDB(for MySQL) 提供了Prepared Statement执行计划缓存特性。接下来一起看一下GaussDB(for MySQL)是如何对执行计划进行缓存并加速Prepared Statement性能的。执行计划缓存工作原理GaussDB(for MySQL)对Prepared Statement执行计划进行缓存的基本原理和流程如下图所示:响应EXECUTE,执行查询。通过is_plan_cached过程来查看当前Query的执行计划是否已经被缓存。如果已经被缓存,优化器将对当前的Query缓存的执行计划进行初始化,根据执行计划的上下文还原执行计划,然后利用还原的执行计划继续执行。如果没有被缓存,在执行完Query优化生成执行计划之后,通过is_query_cachable过程验证当前执行计划是否可以被缓存。如果满足缓存条件,执行计划将会被缓存(调用cache_JOIN_plan),以便以后的EXECUTE语句可以利用该缓存的计划进行执行。如果不能缓存,通过传统的MySQL执行流程(优化,生成执行计划然后执行)执行EXECUTE语句。执行计划缓存管理执行计划缓存功能开关GaussDB(for MySQL)引入了一个新的系统参数rds_plan_cache来开关Prepared Statement执行计划缓存功能。rds_plan_cache:该参数可以设置为ON/OFF。分别代表开启和关闭执行计划缓存。该参数是Session/Global级别的参数。查看执行计划缓存情况GaussDB(for MySQL)提供了两个状态变量供用户查看或者验证Prepared Statement执行计划是否被缓存,以及在执行时是否命中了缓存的执行计划。cached_plan_count:显示有多少个Prepared Statement缓存了执行计划。这是一个Global级别的状态变量。cached_plan_hits:显示EXECUTE执行过程中命中了缓存的执行计划的次数。这是一个Session/Global状态。下面举例来看一下Prepared Statement是如何利用了执行计划缓存特性的:SET @a = 'two';SET @b = 3;PREPARE stmt FROM "SELECT * FROM t1 WHERE b = ? AND c = ?";EXECUTE stmt USING @a,@b;执行结果如下:a b c6 two 3再次执行Prepared Statement:EXECUTE stmt USING @a,@b;a b c6 two 3第三次执行Prepared Statement:execute stmt using @a,@b;a b c6 two 3通过cached_plan_count和cached_plan_hits查看stmt执行计划是否被缓存,以及在执行时是否命中了缓存的执行计划。SHOW SESSION STATUS LIKE "cached_plan%";显示结果如下:Variable_name ValueCached_plan_count 1Cached_plan_hits 2从显示结果可以看出,第一次执行EXECUTE语句的时候,Prepared Statement对执行计划进行了缓存,即可以看到Cached_plan_count为1; 之后执行两次EXECUTE语句,都命中了执行计划缓存,所以可以看到Cached_plan_hits变成了2。缓存的执行计划如何失效为了保持当前缓存的执行计划是尽可能最优的,GaussDB(for MySQL)定义了如下规则来对当前缓存的计划进行失效,并重新生成执行计划:执行计划相关表的记录数更改超过总记录数的20%。这意味着当前表的记录数如果插入/删除超过20%的记录,当前缓存计划将失效并在优化后重新缓存。注:记录数是根据统计数据估计的。所以最好先对表进行Analyze。表定义进行了更改。例如,执行计划相关表上进行的DDL将导致缓存计划无效,并在优化后重新缓存。如果系统变量Optimizer_switch中影响执行计划生成的选项值进行了更改,则缓存的计划将失效,并在优化后重新缓存。系统字符集发生变化,与缓存的计划不同时,将导致缓存计划失效,并在优化后重新缓存。执行计划缓存功能当前的一些限制GaussDB(for MySQL)的Prepared Statement的目的是节约查询的优化时间。对于通过并行查询优化的大查询,也就是数据量相对庞大的查询,这些查询大部分的执行时间是集中在执行计划的执行阶段。对于该类型的查询,优化时间相比执行时间而言可以忽略不计,所以GaussDB(for MySQL)没有对并行查询计划进行缓存。另外,GaussDB(for MySQL)对于Prepared statement 缓存执行计划的能力还在逐步增强中,比如当前只支持单表的SELECT查询语句,暂时还不支持UNION操作。执行计划缓存性能测试结果对于使用执行计划缓存和不使用执行计划缓存的场景,基于Sysbench测试集进行了性能测试对比,从测试结果可以看出,在启用执行计划缓存后,各类业务性能均有提升。注意:这些测试只代表相对数字,并不代表实际性能。测试环境配置如下:数据集 : 8 个表,每个表1000万行测试服务器:Intel(R) Xeon(R) CPU E5-2690 v4 @ 2.60GHz 2 physical cores 56 processors 460G memory总结GaussDB(for MySQL)通过缓存执行计划,可以提升Prepared Statement的性能。特别是针对Range Scan的测试集,性能提升可达2倍左右。未来我们会支持越来越多的查询场景,性能加速值得期待。
  • [问题求助] 有了解gaussdb考证的老师吗
    公司对gaussdb有兴趣,想通过个人考试加深对gaussdb的了解,请问下,有了解gaussdb 考证的老师吗,想了解下想关情况
  • [数据库] 【第55课】TaurusDB小版本升级全攻略
    本节重点讲TaurusDB如何升级内核小版本,内核小版本的升级涉及性能提升、功能优化或问题修复等。关于内核的版本更新说明,请前往华为云官网查看。华为云有新的内核小版本发布时,您可以在“实例管理”页面的“数据库引擎”列看到内核小版本升级提示,轻点“补丁升级”,即可前往升级,具体内容参考后续操作步骤。  升级小知识升级数据库内核小版本会重启TaurusDB实例,服务可能会出现闪断,请您尽量在业务低峰期执行该操作,或确保您的应用有自动重连机制。如果数据库内核从8.0.18升级到8.0.22版本,分区数大于1000时可能会升级失败,请升级之前提交工单联系华为云工程师协助检查版本兼容性。升级实例小版本时,如有只读节点,也会同步升级只读节点的小版本,升级完成会重启实例,请您选择合适的时间升级(不支持单独升级只读实例的小版本)。升级内核小版本后,实例会升级到最新的内核小版本,升级成功,无法降级。小版本升级过程中禁止event的ddl操作,如create event、drop event和alter event。操作步骤登录管理控制台。单击管理控制台左上角的,选择区域和项目。在页面左上角单击,选择“数据库 > 云数据库 TaurusDB”。在“实例管理”页面,选择指定的目标实例,单击实例名称。在“基本信息”页面,“实例信息”模块的“兼容的数据库版本”处,单击“补丁升级”。您也可以在“实例管理”页面的“数据库引擎”列看到内核小版本升级提示,单击“补丁升级”。在弹出框中,选择升级方式,单击“确定”。a、立即升级:系统会立即升级您的数据库内核版本到当前最新版本。操作完成后,可进入任务中心的“即时任务”页签,查看该升级任务的相关信息。b、可维护时间段内升级:系统会在您设置的可维护时间段内,升级您的数据库内核版本到当前最新版本。操作完成后,可进入任务中心的“定时任务”页签,查看该升级任务的相关信息。   
  • [数据库类] guassdb(formysql) 如何建立列存储格式的表,是不是不支持啊
    create table test_bb  (  COL373 CHAR(2) COMMENT '备用字段373',  COL374 DATE COMMENT '备用字段374',  COL375 CHAR(2) COMMENT '备用字段375' )with(orientation=column);
  • [技术干货] 拒绝“爆雷”!GaussDB(for MySQL)新上线了这个功能
    什么是最大读取行一直以来,大数据量查询是数据库DBA们调优的重点,DBA们通常十八般武艺轮番上阵以期提升大数据查询的性能:例如分库分表、给表增加索引、设定合理的WHERE查询条件、限定单次查询的条数……然而,DBA再厉害,应用程序千千万,写代码的程序员万码奔腾,大数据量的查询像地雷,不定什么时候就爆了。比如隐藏在某段代码里的查询,因为一个新手程序员的经验不足,查询代码写得欠佳,没有WHERE子句或缺少索引引发了不必要的多行读取,甚至全表扫描,给服务器带来了过度的压力,导致业务执行缓慢,甚至最后服务器OOM崩溃。为了避免这种“爆雷”,GaussDB(for MySQL)近期上线了最大读取行特性。优化器产生执行计划后,如果优化器预估的读取行数超过了所设置的最大读取行阈值,则自动中止查询,将雷的导火索切断。这种机制的优点在于:执行计划阶段就对查询进行了干预,而不是语句开始执行后在执行过程中进行中断。既杜绝了劣质查询对服务器和业务运行造成的风险,又大大节省了时间和资源。如何设置最大读取行在GaussDB(for MySQL)中,设置rds_max_row_read,指定查询允许读取的最大行数。GaussDB(for MySQL)收到查询指令,执行查询之前,会对查询要读取的行数进行估计。当估值超过所设置的最大读取行时,将中止查询,即查询没有机会运行,提前规避不必要的资源消耗。下面是一份测试数据,说明了开启最大读取行前后的差异。假设表t1有4M大小的行,当开发人员或应用程序尝试运行以下查询时,运行需要7分钟。mysql> SELECT  *  FROM t1;WHERE子句的缺失致使需要全表扫描,查询耗时长。对于更大的表,这类查询将需要更多的耗时,使服务器消耗更多资源,查询耗时甚至可能高达数小时。最大读取行特性的使用,可以节省宝贵的时间和资源。比如假设将最大读取行数指定为1000000:mysql> set rds_max_row_read =1000000;Query OK, 0 rows affected (0.00 sec)修改后,重新运行不含WHERE子句的查询,收到了读取行超限的提示,查询被停止。   mysql> SELECT  *  FROM t1;ERROR HY000: Expected number of read rows exceeds the maximum allowed (see @@rds_max_row_read)通过最大读取行,相当于拥有了一个工具,DBA或者软件工程师根据业务情况可以自如设置和调整限制规则,保证业务正常运行的同时,限制次优查询,避免性能异常。适用范围适用于SELECT、CREATE SELECT和INSERT SELECT。功能开启默认情况下,该功能是禁用的,只有当rds_max_row_read设置了值时,该功能才会被激活。为了功能的稳定,避免无心的错误设置对业务造成不必要的影响,rds_max_row_read做了最低值限制,不允许用户设置比最低值更低的值。实现原理GaussDB(for MySQL)通过遍历每个查询块并聚合各查询块的贡献来整体评估查询的读取行数:也就是对各join对象的读取行数评估后累加。如果在累加评估过程中的某一刻,估计值超过了所设置的限制,查询将被终止。对于关联子查询,评估办法为:评估子查询的读取行数,然后乘以查询被执行的次数。需要特别说明的是,对每个JOIN对象的估计是执行计划预估返回的行数,可能与真实执行返回的行数有偏差。这虽然是一个相对简单的评估模型,但是我们坚信其具有足够的鲁棒性。对于复杂查询,GaussDB(for MySQL)还通过optimizer trace提供了更多信息以帮助您确定优化器做决策的原因及如何优化查询。示例示例1mysql> EXPLAIN format=tree SELECT * FROM table_1, table_2;+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| EXPLAIN                                                                                                                                                                   |+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| -> Inner hash join (no condition)  (cost=6.50 rows=54)    -> Table scan on table_1  (cost=0.19 rows=9)    -> Hash        -> Table scan on table_2  (cost=0.85 rows=6) |+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+1 row in set (0.00 sec)mysql> SET rds_max_row_read =20;Query OK, 0 rows affected (0.00 sec)mysql> SELECT * FROM table_1, table_2;ERROR 1888 (HY000): The expected number of read rows exceeds the allowed maximum (see @@rds_max_row_read)查询读取的行太多,我们尝试在optimizer trace的帮助下寻找原因:SET optimizer_trace="enabled=on";SELECT * from table_1, table_2;SELECT * FROM INFORMATION_SCHEMA.OPTIMIZER_TRACE;在optimizer trace中,可以找到:{            "Max_row_read": {              "select#": 1,              "current_estimate_of_rows": 54,              "rows_contributed_by_this_query_block": 54            }          }这表示此查询中的唯一查询块,行读取数为54。执行计划中的这个评估有多准确呢?执行如下查询查看语句实际被执行的次数:mysql> show status like "handler_read_rnd_next";+----------------------------+-------+| Variable_name              | Value |+----------------------------+-------+| Handler_read_rnd_next      | 17    |+----------------------------+-------+1 rows in set (0.00 sec)handler_read_rnd_next显示实际上的读取是17行,而不是54行。这个17是怎么来的呢?这是一个哈希连接:-遍历整张表时,左表有9行数据+1行额外行。-右表有6行+1行额外行。优化器中会预估返回读取行,例如,54。在这个示例中,它并没有很好地猜测到返回的行数,它高估了行读取的数量。在大多数情况下,读取行数的估计不够精确,但可以肯定的是,它是足够稳健的,能达到相应的目的。示例2创建例表t1:mysql> CREATE TABLE t1(a INT);在表中填充1536行数据后。将rds_max_row_read设置为500,进行以下测试查询:mysql> SELECT * FROM t1 WHERE a>6;ERROR HY000: Expected number of read rows exceeds the maximum allowed (see @@rds_max_row_read)在optimizer trac的帮助下,可以看到优化器估计的读取行数是512行,因此查询被终止。如果在a字段上添加索引(这是一件明智的事情),同一查询的估计读取行数是1,查询检测顺利通过。这个简单的示例说明:最大读取行能帮助您编写更加优质的查询语句。结论最大读取行特性针对读取过多行的查询,识别和过滤出效率低下的查询。用户可以为读取行数设置阈值,超过该阈值则终止查询。为了识别此类查询,GaussDB(for MySQL)在优化器中进行了读取总行数的粗略估计。当查询终止时,可以检查optimizer trace,从中收集线索,以帮助重写更高效的查询。简而言之,最大读取行为用户提供了一个工具,使他们可以更充分地利用手上的资源。
  • [问题求助] 高并发测试结果没有优势
    在学习电商秒杀小项目的时候,用Jmeter 1000个线程循环10次测试访问商品列表的这个并发事件的时候,使用GaussDB for mysql (4核16g)的QPS为180左右(并发高了也是这个值应该是稳定了)(广州节点)我在云服务器(广州节点,2核2g)上搭建mysql同样进行测试,QPS有210这样的话GaussDB高并发的优势该怎么体现哇(头秃)
  • [问题求助] GaussDB for Mysql关于高并发的特性技术如何体现
    GaussDB for Mysql关于高并发的特性技术如何体现。有无相关文档或是思路
总条数:170 到第
上滑加载中