-
伴随五一长假的临近,相信不少小伙伴已经拟定出行计划,翘首以待。对于不少行业来说,也是不容忽视的业务高峰期,毕竟过不好,就变成“劫“日了。例如五一车票开抢,短时间大量的流量访问,导致系统崩了。出门自驾游导航,定位不精准,数据反应慢,实时查询不到路线。假期酒店门店间每日数据汇总耗时数小时等等。 数据量骤增,访问量变大,传统数据库便招架不住了。云数据库便成为政企数字化转型与核心数据上云的选择。这个时候,华为云数据库就闪亮登场了!有别于传统数据库,华为云数据库具有高性能、高扩展、一致性、易操作等特性,为企业海量数据处理、智能存储、业务应用提供强有力的平台支撑。超高性能,轻松应对业务高峰流量高峰不用慌,华为云RDS通过内核线程优化,解决社区版因高并发资源消耗过大导致性能下降问题,确保业务在高并发场景下性能依旧稳稳当当;在业务流量突发情况下,华为云RDS支持自动负载均衡,几分钟就可以完成存储1TB的只读实例扩展,轻松应对流量高峰,同时支持在大量连接下,提供更快速的响应时间,客户以后再也不用担心系统突然崩溃、业务反应慢的问题了。安全可靠,数据放在云上也睡得着对于诸如金融交易等行业而言,系统需具备更严格的高可用和高安全特性,数据安全可靠是首要诉求。位置应用服务需要提供实时定位,不能接受业务中断、数据丢失等故障问题。而这些,正是华为云RDS的长处。在业务高负载情况下,华为云RDS并行高速复制下主备延时≈0,保证数据不丢失;用户可自定义备份策略,备份和恢复时间最长可达732天;而且支持跨AZ部署,故障发生时可以快速恢复,保障业务的持续运行。简单易用,性价比杠杠的对比自建数据库,华为云数据库在搭建上拥有无出其右的优势。它无需购买服务器、安装操作系统、安装数据库等一系列的操作,它依托于镜像容器的解决方案实现秒级搭建,分钟级实现投入使用,极大地减少了开发人员在数据库上搭建的时间。此外,它完全托管软硬件部署、补丁升级、自动备份、监控告警、弹性扩容、故障转移等功能,不需要额外的安装和维护工作,减轻DBA运维压力的同时,又可以大大的节省企业成本。暖春心意价,助您无忧上云人间四月天,正是上云好时节!为了回馈新老客户的支持和支撑用户顺利搬迁上云,华为云数据库团队精心为用户提供了一系列搬迁上云权益活动:不限新老用户购买云数据库MySQL、PostgreSQL等产品8个月时长,赠送4个月,免费体验迁移工具数据复制服务等等,详情请移步华为云-数据库搬迁上云专场:https://activity.huaweicloud.com/dbs_Promotion/index.html
-
HDC.Cloud2021|华为云数据库分论坛4月24日高校专场直播主题直播地址华为云GaussDB数据库高校训练营-北京大学深圳研究生院&华为云GaussDB数据库联合出品https://live.huawei.com/hdc2021/meeting/cn/8105.html“学好数据库,玩转IT都不怕”——面试官心中的最佳数据库人才模型https://live.huawei.com/hdc2021/meeting/cn/8254.html智能基座慕课大讲堂https://live.huawei.com/hdc2021/meeting/cn/8023.html华为云GaussDB数据库高校训练营-北京大学深圳研究生院&华为云GaussDB数据库联合出品HDC.Cloud2021|华为云数据库分论坛4月25日峰会专场直播主题中文直播间英文直播间鹏城论剑,共话数据库前沿技术和趋势https://live.huawei.com/hdc2021/meeting/cn/7998.htmlhttps://live.huawei.com/hdc2021/meeting/en/8048.htmlHDC.Cloud2021|华为云数据库分论坛4月26日数据库频道直播主题直播地址从单机百万tpmc到分布式千万tpmc,GaussDB性能提升的3个关键技术剖析https://live.huawei.com/hdc2021/meeting/cn/8192.html金蝶云苍穹如何基于存算分离的数据库满足百万用户的并发访问?https://live.huawei.com/hdc2021/meeting/cn/8198.html基于GaussDB内外协同的数字化办公平台交付分享https://live.huawei.com/hdc2021/meeting/cn/8197.html5步上云,华为云GaussDB无缝迁移上云解决方案https://live.huawei.com/hdc2021/meeting/cn/8203.html
-
HDC.Cloud2021华为开发者大会即将开幕,作为数字化转型的关键数据底座,华为云数据库此次以开放与开源,驱动数据库技术创新为主旨,云集各界技术大咖,倾力分享高校开发者人才培养政策、前沿内核技术、技术架构带来的用户价值、最佳应用实践等,现场更有精彩互动,学习、体验、实践、奖品**,让您轻松畅游又学有所获,快来这里一探究竟吧!作为华为ICT基础设施业务面向全球开发者的年度盛会,华为开发者大会2021(Cloud)将于2021年4月24日-26日在深圳举行。本届大会以#每一个开发者都了不起#为主题,将汇聚业界大咖、华为科学家、顶级技术专家、天才少年和众多开发者,共同探讨和分享云、计算、人工智能等最新ICT技术在行业的深度创新和应用。智能时代,每一个开发者都在创造一往无前的奔腾时代。世界有你,了不起!点击链接,了解大会详细信息。https://developer.huaweicloud.com/HDC.Cloud2021.html
-
学生用户,3个月仅需99元;政企用户,487.8元起,或买8个月送4个月购买、回帖晒单,送64G 防水U盘、米格系列移动电源2500mA、手机懒人支架、书籍《华为数据之道》、书籍《openGauss数据库核心技术》、GaussDB字母笔......活动链接:https://bbs.huaweicloud.com/forum/forum.php?mod=viewthread&tid=121539
-
HDC大会福利来袭!华为云数据库《MySQL数据库迁移上云》微认证:4月24~25日,全场3折,下单就送价值22元的GaussDB字母笔7支/盒;4月26日,限时0元秒杀,仅此一天;活动期间,下单并考取微认证的用户,将证书上传到活动帖,即可得到64GU盘、GaussDB字母笔、华为数据之道、《openGauss数据库核心技术》任意礼品一个。活动链接:https://bbs.huaweicloud.com/forum/forum.php?mod=viewthread&tid=121539
-
步骤一:填问卷【学生问卷】华为云数据库问卷有礼【政企问卷】华为云数据库问卷有礼步骤二:数据库课程免费学 or 展岛拍照将“查看课程”页面,或展岛拍照照片,分享到本帖评论区即可① 7天玩转MySQL基础实战营② 玩转MongoDB从入门到实战③ 7天玩转PostgreSQL基础训练营样图如下:【趣玩Codelab实验】现场完成codelab实验,送GaussDB字母笔7支/盒【特惠专场】华为云数据库产品,新用户低至2折购买、回帖晒单,送64G 防水U盘、米格系列移动电源2500mA、手机懒人支架、书籍《华为数据之道》、书籍《openGauss数据库核心技术》、GaussDB字母笔......【微认证】MySQL数据库迁移上云提示:1.本次活动回帖内容需满足华为云论坛发帖规范 https://bbs.huaweicloud.com/forum/thread-23077-1-1.html。2. 活动结束3个工作日将在此帖公布获奖名单,敬请关注。3. 奖品将在公示期结束后15个工作日内发出。4. 由于获奖用户自身原因(包括但不限于提供的联系方式有误、身份不符或者通知领奖后超过15个工作日未领取等)造成奖品无法发送的,视为获奖用户放弃领奖。5.活动一切解释权归华为云数据库所有。
-
“云”是什么?“华为云”到底是一种什么样的存在?“华为云数据库”又该如何理解?想快速入门华为云,get干货课程那就来华为云学院精心打造的——【活动简介】本活动包括华为云入门、弹性云服务器ECS、块存储服务EVS、云网络、数据库服务和华为云冰山安全体系等主题内容,配合视频+直播+学习交流群+结业考试等多种形式,带你快速入门华为云,帮你构建全面的云相关知识体系!【活动奖品】邀请好友报名赢2021HDC门票、码豆换好礼;邀请好友一起报名学习华为云新手入门赋能专场观看开班直播赢取价值50元京东卡;完成课程打卡赢取机械键盘、无线鼠标、定制书包等好礼;通过结课测试,赢取结业证书。【邀请好友,一起学习】- 邀友活动时间:即日起-2021年4月30日 - 邀好友,赢奖励:邀友报名课程, 进入累计邀请人数排行榜,可获得码豆奖励:第1名5万码豆邀请人数≥50人第2名3万码豆邀请人数≥20人第3-4名1万码豆邀请人数≥15人第4-10名0.5万码豆邀请人数≥10人在活动报名环节,邀请好友报名学习课程,在2021年4月20日,有效邀请排名top3的用户(有效邀请为被邀请者需报名成功《华为云入门》,且被邀请人数需达100人)即可赢取门票,若未到达有效邀请人数则不能获取。
-
华为云HERO高校联盟知识学堂活动火爆开启啦!本期主题:数据库工程师进阶之路——化繁为简,从“新”开始,由华为云数据库专家团出品,21天专家手把手带你从基础到进阶玩转常见数据库,同时深入实战,学习如何维护和优化校园智慧订购系统。点击下方链接报名参与活动:https://developer.huaweicloud.com/college/HEROactivity2021.html报名成功后点击分享有礼,成功邀请10人起,就有机会获得无线榨汁机、华为手环4、定制双肩包、无线鼠标、公牛插排、魔方等更多好礼!
-
“local quorum查询某个分区键的条数,每次查询,条数都不一样。”“按这个分区键的token修复,直接瞬间修复结束。但是再查,还是每次查询条数不一致。”“之前遇到墓碑丢失的问题,单个token查询结果不一致,修复也解决不了”…..不用再为数据不一致苦恼,因为强一致的Cassandra来了,DBA们不用加班修数据了。GaussDB(for Cassandra)是一款基于华为自主研发的计算存储分离架构的分布式云数据库服务。是一个强一致性的系统,在华为云高性能、高可用、高可靠、高安全、可弹性伸缩的基础上,提供了一键部署、备份恢复、监控报警等服务能力。高度兼容开源Cassandra接口,并提供高读写性能,具有高性价比,适用于IoT、气象、互联网、游戏等领域。 本文将从架构、主要特性、竞争力、应用场景等方面进行介绍。设计架构:GaussDB(for Cassandra)基于计算存储分离架构,该架构基于华为内部强大且广泛使用的自研分布式存储系统DFV(数据功能虚拟化/Data Function Virtualisation),实现了一套Share Everything的云开源架构,充分发挥了云开源的弹性伸缩、资源共享的优势,高度兼容Cassandra协议,拥有超强写入性能,同时相比社区版具有分钟级计算扩容、秒级存储扩容、数据强一致等优势,性能更强更稳定,数据更可靠,扩容更敏捷,适用于IoT、实时推荐、金融反欺诈检测等场景。GaussDB(for Cassandra)牛在哪?高可靠:数据强一致,提供企业级数据可靠性开源Cassandra读写数据采用最终一致性,此处用读场景举例:如果读一致性要求为ONE,会立即返回离客户端最近的一份数据副本,那么这意味着第一次读取到的数据可能不是最新的数据。如果读一致性要求为QUORUM(即读取任一数据中心中quorum数量的节点的结果,返回合并后timestamp最新的结果),则内核会自动触发读修复,然后返回给客户端。假如此时有副本所在节点出现坏盘,在gc_graces的周期内没有完成数据修复,部分副本属于坏盘节点的业务数据,业务查询过程中发现数据会概率性不正确。GaussDB(for Cassandra)采用存算分离架构,数据的副本在DFV存储平台保证,对计算节点来说数据单副本、数据强一致,查询只需要从协调节点直接到数据节点取数据即可完成,规避了数据不一致修复数据造成的人力成本、业务查询过程中发现数据会概率性不正确等问题。另外支持N-1个节点故障容忍,提供10倍以上的故障重构性能和备份恢复性能,保证数据的可靠性。高扩展:秒级扩容,快速更神速开源Cassandra采用一致性Hash算法对数据进行分区打散,整个环代表数据从负无穷到正无穷区间。集群中每个节点会有虚拟节点(Token)在环上,虚拟节点的数量可配置。黄圈代表节点1,蓝圈代表要扩容的节点2,2个Token之间组成整个数据的其中一段Range区间,扩容后加入了新的Token,会产生新的Range,这些Range中的一部分会归新节点2管理。那么就需要把数据从节点1迁移到新节点2上去。迁移是通过读取节点1上的数据写入到节点2上,迁移的速度可以通过配置参数调整,整体迁移的时间由数据量与迁移过程中的读写速率有关。GaussDB(for Cassandra)把多副本策略下沉到共享存储,大幅提升弹性伸缩能力,如图右侧展示,新扩容的节点2只需要重新映射Token2到节点2,就可以完成,无需做数据的读取与写入的搬迁动作,实现分钟级计算扩容,相比开源扩容时间提升几十倍。随着业务的不断增长,Cassandra可以分钟级水平弹性资源扩展。在类似圣诞节等热门节日,提前1天进行弹性扩容,为业务高峰预留资源,业务高峰过后进行缩容,这些对业务无感知。计算节点可以通过文件系统控制集群在DFV中的数据使用量,扩容缩容磁盘时通过重新分配最大使用量,可实现秒级存储扩容,单实例支持海量数据存储。高性能:超高写入,读性能数倍提升GaussDB(for Cassandra)在超强写入性能的基础上,通过使用C语言重构存储引擎,减少系统GC,实现了数倍读性能提升,拓宽了使用场景的外延,使其不仅仅适用于写密集型的业务场景,在读密集的场景中也具备了强竞争优势,整体性能超越开源自建2~3倍。高安全:构筑多层保护,为数据安全保驾护航GaussDB(for Cassandra)通过VPC、子网、安全组、DDoS防护以及SSL安全访问等多层安全防护体系,帮助用户抵御网络攻击,让用户上云无忧。为什么选择GaussDB(for Cassandra)?能力技术能力对比 开源自建CassandraGaussDB(for Cassandra)自动备份能力、PITR×√超大数据量及复杂查询支持×√流表(数据变更捕获)×√离线分析不完善√高可靠:双向数据同步、无损升级×√分钟级扩容×√全局索引不完善√数据强一致×√适用多种场景工业制造&气象业随着科技进度,采集的气象数据指数增长,需要一种系统对地面、高空、海洋、重要天气报、闪电、环境监测等卫星、雷达采集的数据能够高性能写入、查询、在线、离线分析。需要存储对地面、高空、海洋、重要天气报、闪电、环境监测等卫星、雷达等降雨量、湿度、温度等PB级数据量支撑来自各气象采集点数据高并发写入到Cassandra,GaussDB(for Cassandra)集群性能高于自建2~3倍,更适合高并发写入读取GaussDB(for Cassandra)数据能够支撑实时在线分析,为气象算法、天气预报做到实时精准分析访问数据库进行离线数据分析,GaussDB(for Cassandra)能将离线分析时效缩短到60%互联网GaussDB(for Cassandra)具备高并发写入性能和高可扩展性,保障集群高可用和业务连续稳定性,非常适用于写入规模量较大的互联网大数据场景,如记录大规模的用户行为数据等。存放用户画像数据,能够完美解决特征:数据量大、可以应对数据结构Scheme频繁变更查询性能要求高;比如要买一双鞋,搜索出的鞋子数据会根据用户画像的特征做一定的排序展示,那么要求查询用户特征表的查询性能非常高推荐系统:根据用户最近浏览的数据做分析之后,推荐相关资源给用户点赞系统:点赞计数系统实时数据分析场景GaussDB(for Cassandra)群组今天新来了一个成员,或者yutou今天发布一篇新文章,华为云数据库官方自动向该用户发出欢迎邮件。昵称为yutou的同学今天发布了一组新照片,那么另外一个程序自动向yutou的好友发送通知。原生不具备的数据变更捕获能力,GaussDB(for Cassandra)具有变更捕获能力,能对数据的变更做实时在线分析,提供秒级的实时推送动作做出相应处理;具有完善的离线分析解决方案,可以将离线分析时效缩短到60%,为商家争取更多的时间做出相应决策。购买建议GaussDB(for Cassandra)性能为开源2倍以上,存储空间仅需开源自建1/3,帮助客户节省成本,举例如下:开源自建8u32g * 3节点 数据量:90G(三副本),购买GaussDB(for Cassandra)可选择创建4u16g * 3节点 数据量:30G(DFV存储三副本) 本文作者:华为云GaussDB(for Cassandra)团队产品首页:https://www.huaweicloud.com/product/gaussdbforcassandra.html欢迎加入我们!华为云GaussDB(for Cassandra)团队(深圳、西安、杭州)zhaojuan.zhao@huawei.com
-
随着智能时代的加速演进,这一代开发者非常有幸,可以运用各种创新技术给世界带来更大的改变。 开发者们熟悉的数据库,对普通人来说可能感知甚少,但是它的用处却无处不在。它能解决我们生活中的哪些难题呢?还有,做数据库开发凭什么这么吃香?别着急,马上你就有答案了! 广义上,数据库是存储数据的东西,类似书本、大脑、图书馆;狭义上,数据库是存储在计算机中结构化的表格,用户账户信息表、网购订单表、地理位置表…… 别以为数据库跟你没关系,你在华为商城抢购Mate40,你使用网银APP转账交易,数据库都在默默时刻守护您的每一笔交易安全迅捷。 随着新时代下数字化转型加速,数据量越来越大,传统数据库存在瓶颈,于是,华为云数据库就闪亮登场了。 我们以华为云GaussDB(for Redis)为例,来聊聊数据库开发者能解决生活中哪些常见问题。1、社交软件无差错通讯 在我们日常的即时通讯场景中,实时无差错通讯是必要要求。众所周知,Redis Stream是一种新的数据类型,它提供了消息的落地存储功能。Redis Stream作为通讯的中间件,可实现聊天室的发言以及信息查看,无论离线在线用户都可多次查看历史消息。华为云GaussDB(for Redis)让聊天更有序,让通讯更完整。2、解决医疗信息孤岛 在医疗场景中,个人健康信息孤岛亟需解决。Redis Stream可以助力智慧医疗系统实现信息同步,不但可以记录个**检报告、诊断报告、用药信息,还可以助力不同医院查询同一个患者的医疗信息。GaussDB(for Redis)解决信息孤岛,更好保卫健康。3、防止流量洪峰来临系统崩溃 在常见的双11秒杀活动或团购场景中,通常短时间内有大量的流量,导致系统崩溃。所有的请求都有一个先后顺序,开发者同样采用Redis Stream作为中间件,将消息转存到消息队列间接提供给应用,可以防止大流量冲击导致的系统崩溃,华为云GaussDB(for Redis)让购物更加顺畅。 4、实时查询外卖小哥配送距离 点外卖时你是如何获取外卖小哥的配送距离的呢?在用户下完外卖订单后,数据库开发者使用geoadd命令加入骑手的位置,还可以使用geodist命令获取骑手的距离。华为云GaussDB(for Redis)让送餐距离不再遥远。5、房源位置查询 从到衣食住行到买房等人生大事,华为云GaussDB(for Redis)均可助你一臂之力。在众多的房源App中,将新的房源加入房源平台中,数据库开发者使用geoadd命令,添加新房源的位置,使用geodist命令,用户可获得与房源的距离。华为云GaussDB(for Redis)让你与温馨的家更近一步。 作为数据库开发者,小到助力我们抢购车票、外卖点餐,大到买房、个人医疗信息建档等,哪里有需要哪里都有开发者的身影。他们通过一行行冰冷的代码,解决了生活中的一个个难题,也成就了每个开发者的英雄梦。 作为华为ICT基础设施业务面向全球开发者的年度盛会,华为开发者大会2021(Cloud)将于2021年4月24日-26日在深圳举行。本届大会以#每一个开发者都了不起#为主题,将汇聚业界大咖、华为科学家、顶级技术专家、天才少年和众多开发者,共同探讨和分享云、计算、人工智能等最新ICT技术在行业的深度创新和应用。智能时代,每一个开发者都在创造一往无前的奔腾时代。世界有你,了不起! 点击链接,了解大会详细信息。https://developer.huaweicloud.com/HDC.Cloud2021.html
-
尊敬的华为云客户:华为云云数据库MySQL服务计划于2021/04/15 00:00(北京时间)对华北-北京四、华东-上海一、华南-广州区域进行产品规格类型调整,调整后详情如下:1、新购的云数据MySQL实例将按调整后的规格及价格收取费用。2、对已经申请的云数据库MySQL实例,您可根据您的业务情况进行选择。1)若进行规格变更,则按照调整后的规格及价格计费。2)若进行续费和扩容,则按照调整前的规格和价格计费。具体调整内容包含:1、存储空间:新增“SSD云盘”,去除“超高IO”,其价格如下:计费项产品类型说明步长规格按小时(元/GB)包月(元/GB)包1年(元/GB)包2年(元/GB)包3年(元/GB)单机实例(含只读)存储SSD云盘线性计费10 GB0.00211016.818主备存储SSD云盘线性计费10 GB0.00221.61626.8828.82、规格变更:新增“通用型实例”和“独享型实例”,去除“通用增强I型”和“通用增强II型”实例,调整后的规格及价格如下:形态CPUMEM按小时(元)包月(元)包1年(元)包2年(元)包3年(元)通用型(单机版)240.3215615602620.82808480.753603600604864808161.573073001226413140280.381901900319234204160.954804800806486408321.911000100001680018000通用型(主备)241.0240640606820.87308481.9805805013524144908163.61575157502646028350281.155205200873693604162.110001000016800180008324.22000200003360036000独享型(主备)4162.813901390023352250208325.6270027000453604860016641153005300089040954003212821.8105001050001764001890006425643.75210002100003528003780004323.617201720028896309608647.234403440057792619201612814.46880688001155841238406451256.2527000270000453600486000通用型(只读)240.5120320303410.43654480.95402.54025676272458161.8787.578751323014175280.5752602600436846804161.055005000840090008322.11000100001680018000独享型(只读)4161.4695695011676125108322.8135013500226802430016645.526502650044520477003212810.952505250088200945006425621.875105001050001764001890004321.8860860014448154808643.61720172002889630960161287.234403440057792619206451228.12513500135000226800243000更多关于云数据库MySQL的产品介绍,请您点击了解。如您有任何问题,可随时通过工单或者服务热线( 4000-955-988或950808 )与我们联系。感谢您对华为云的支持!
-
数据库课程是由华为云数据库高级专家亲自打造,学、练、考一站式服务,一览数据库全貌。学数据库基础入门课程① 数据库介绍② 数据库基础知识③ 华为云服务-数据库服务RDS④ SQL语法入门⑤ SQL语法分类⑥ 数据库开发环境⑦ 数据库安全基础⑧ 数据库设计基础⑨ 华为数据库产品GaussDB介绍数据库专项学习课程① 7天玩转MySQL基础实战营② 玩转MongoDB从入门到实战③ 7天玩转PostgreSQL基础训练营④ GaussDB实战训练营 练① 10分钟快速入门RDS② 使用DRS实现数据实时同步③ 通过CDM同步数据到MRS Hive④ 使用CDM将CSV文件迁移至RDS⑤ 数据库服务实践⑥ 使用Python爬虫抓取图片和文字实验 ⑦ DAS企业版 安全管控删库跑路⑧ MySQL本地数据库迁移 考① 【微认证】 MySQL数据库迁移上云② 【职业认证】华为认证数据库工程师HCIA-GaussDB③ 【职业认证】华为认证数据仓库高级工程师HCIP-GaussDB-OLAP④ 【职业认证】华为认证数据库高级工程师HCIP-GaussDB-OLTP文章描述一文梳理华为云数据库产品,理清RDS、DDS和GaussDB了解开源数据库上云和华为云自研数据库,读懂华为云数据库生态。初识华为云关系型数据库RDS支持MySQL、PostgreSQL、SQL Server等关系型数据库引擎。华为云DDS—云上高性价比文档数据库服务DDS兼容MongoDB协议,支持分片集群、副本集和单节点三种部署架构。超便捷的华为云数据复制服务DRS是一种易用、稳定、高效,用于数据库在线迁移和数据库实时同步的云服务。万万没想到,云数据库MySQL原来是这样的!!!图文并茂了解云数据库MySQL的特点和应用场景。太给力了!认识云数据库PostgreSQL只需要这三步PostgreSQL是开源关系型数据库,兼容Oracle的语法,有丰富的第三方插件。这才是云数据库 SQL Server的正确打开方式SQL Server 是广受欢迎的商用关系型数据库,能集成各类微软常用管理开发工具。华为云数据管理服务DAS来啦!帮您轻松解决数据管理各种难题面对数量庞大且种类繁多的难题,DAS提供数据库开发、运维、智能诊断等服务。积跬步、行千里,华为云数据库前景几何?经过十余载打磨,华为数据库业务已在产品、组织、生态上整合到位。文章描述从业务和团队出发,数据库选型要“对症下药”从自身业务架构、业务数据量、数据类型、团队成员的业务能力等多角度选择数据库。没有宫廷内 斗,数据库界的延禧攻略全方位解读MySQL与MongoDB的区别:没有谁替代谁,只有哪个场景更适合谁。关系型or非关系型难以抉择,云上数据库必有一战云数据库的高性能、高扩展、高可用也让建立在数据之上的业务系统更加高效。自己挑水喝还是自来水供水?浅谈云数据优势自建数据库和云数据库的比较,就好像是自己挑水喝和自来水供水的区别。您的业务适合哪种数据库,真的知道吗?面对市场上琳琅满目的数据库引擎,选合适的数据库能节省成本、提高业务能力。浅析电商、社区、游戏行业常用 MySQL 架构MySQL架构一定要结合业务来分析、设计、优化。遇到数据并发瓶颈,如何在SQL、NewSQL、NoSQL间取舍SQL数据库在海量数据的存储及并发读写上遇到瓶颈,NoSQL和NewSQL数据库扶摇直上。文章描述开源数据库这么香,为什么我们还要下功夫自研?对于企业来讲,只有选择开放的生态,才能让自己的业务具备更好的连续性。解读华为云原生数据库设计原则,打破传统数据库上云瓶颈云服务厂商自研云数据库产品势在必行。那么,一个优秀的自研数据库产品应该要具备哪些特性呢?从“华为GaussDB”到“华为云GaussDB”,华为如何加持云基础技术实力? 华为在数据库以及整个计算产业的打法:不谋全局者,不足谋一域。技术解读丨GaussDB(for MySQL)存储架构设计的秘密是什么?深耕18年数据存储,GaussDB(for MySQL)如何实现算子下推,软硬协同性能调优,跨AZ数据0丢失。苦开源MySQL瓶颈久矣,不妨试试GaussDB(for MySQL)分布式版解读GaussDB(for MySQL)分布式版本的特性。华为云推出全自研数据库,GaussDB能否撑起一片天?华为首个全自研的开源数据库会给整个生态带来什么改变呢?一文读懂GaussDB(for Mongo)的计算存储分离架构通过计算存储分离架构,完美解决开源版本水平扩展的速度瓶颈及性能恶化问题。详解GaussDB bufferpool缓存策略,这次彻底懂了根据bufferpool的使用特点设计一个高效的缓存策略。领先原生PG 5倍性能,这次GaussDB(for PostgreSQL)真香了GaussDB(for PostgreSQL)遵循解耦、近数据计算下推、充分利用云存储能力、发挥SSD性能等原则。直击结构迁移和SQL转换痛点,华为云UGO要做愚公移山的事情数据库领域也有愚公移山:移走传统主流商业数据库。从GaussDB(for MySQL)看全自研数据库的正确打开方式深入剖析GaussDB(for MySQL)主备版和分布式版的关键技术和特性,相关行业应用案例。一文读懂GaussDB的六大关键技术特性从分布式执行框架到GTM-Lite技术,揭秘GaussDB关键技术。文章描述一个数据库管理员的自我救赎之路公司在筹备上云的事,数据库迁移用DRS就对了。86万张表迁移的优化历程 2000个库,86万张表,要在一天内要完成割接,如何完成这个不可能的挑战?华为云数据库SQL Server实践案例技术解析以金蝶K/3 WISE 为例,配合华为云SQL Server 实例快速迁移数据中心。性能诊断好难?华为云DAS服务全量SQL洞察为您支招如何安全审计SQL、快速定位性能异常、保护数据库安全?我的PG数据库备份优化之路通过DRS服务PG顺利迁移到华为云上,晚上再也不会收到数据盘空间不足的异常告警。
-
### 设计与模式 之前一直以为「设计模式」是一个完整的名词 其实「设计」和「模式」是要分开来说的 **「设计」:5 个常见的设计原则** **「模式」:代码中常见的"套路",被程序员总结成了相对固定的写法,称之为「模式」** 也就是说学习"设计模式",首先肯定要学习和理解 5 个设计原则。 #### 五大设计原则-SOLID - S(single)-单一职责原则- 一个程序只做好一件事;如果功能过于复杂就拆分开,每个部分保持独立; - O(open-close)-开放封闭原则- 对扩展开放,对修改封闭;增加需求时,扩展新代码,而非修改已有代码; - L(Liskov)-里氏置换原则-子类能覆盖父类;父类能出现的地方子类就能出现; - I(Interface)-接口独立原则-保持接口的单一独立,避免出现”胖接口“;js中没有接口(typescript除外),使用少; - D(Dependence)-依赖倒置原则-编程依赖抽象接口,不要依赖具体实现;使用方只关注接口而不关注具体类的实现; **示例 promise** - 单一职责原则:每个 then 中的逻辑制作好一件事 - 开放封闭原则:如果新增需求,扩展 then ```js // 0.0.1/loadImg.js function loadImg(src) { let promise = new Promise(function (resolve, reject) { let img = document.createElement('img'); img.onload = function () { resolve(img); } img.onerror = function () { reject('图片加载失败'); } img.src = src; }); return promise; } let imgUrl = 'https://raw.githubusercontent.com/ruizhengyun/images/master/cover/ruizhengyun.cn_.png'; loadImg(imgUrl).then(function (img) { console.log(`width: ${img.width}`); return img; }).then(function (img) { console.log(`height: ${img.height}`); }).catch(function (ex) { console.log(ex); }); ``` #### Javascript 常用设计模式 -- 工厂模式 工厂模式也称创建模式,是用于创建对象的一种方式。可以说就是用来代替 new 实例化对象,决定了实例化哪一个类,从而解决解耦问题。 **拟物化解读** 一个工厂接到一笔订单(传参),然后根据这个订单类型(参数)来安排产品线(实例化哪个类),当然客户可以要求一些产品的工艺属性(抽象工厂)。这其中厂长(工厂模式)只负责调度,即安排产品零件流水线。你应该知道的是,工厂有个特点就是产出体量大、相似度高的产品。如果你要做单一定制化的产品,那这笔订单给工厂就不适用了。 **其作用(利)** 解耦,通过使用工程方法而不是 new 关键字; 将所有实例化的代码集中在一个位置减少代码重复,降低出错; **具体实现** 分步创建一个复杂的对象,解耦封装过程和具体创建组件(分解为零件流水线); 无需关心组件如何组装(厂长在调度); 不暴露创建对象的具体逻辑,将逻辑封装在一个函数中(客户只需要告诉工厂做什么和提一些要求); **适用场景** 处理大量具有相同属性的小对象; 对象的构建十分复杂,需要依赖具体环境创建不同实例 **分类(抽象程度)** 不暴露创建对象的具体逻辑,而是将逻辑封装在一个函数中,那么这个函数就可以被视为一个工厂。 ##### 简单工厂模式 也可以叫静态工厂模式,用一个工厂对象创建同一类对象类的实例。现实生活中,用户在平台还是分等级的,角色不同,权限也不同。 **1.ES5 实现** ```js // 0.0.2/es5.simple.factory.js function Role(options){ this.role = options.role; this.permissions = options.permissions; } Role.prototype.show = function (){ var str = '是一个' + this.role + ', 权限:' + this.permissions.join(', '); console.log(str) } function simpleFactory(role){ switch(role) { case 'admin': return new Role({ role: '管理员', permissions: ['设置', '删除', '新增', '创建', '开发', '推送', '提问', '评论'] }); break; case 'developer': return new Role({ role: '开发者', permissions: ['开发', '推送', '提问', '评论'] }); break; default: throw new Error('参数只能为 admin 或 developer'); } } // 实例 const xm = simpleFactory('admin'); xm.show(); const xh = simpleFactory('developer'); xh.show(); const xl = simpleFactory('guest'); xl.show(); ``` **2.ES6 实现** ```js // 0.0.2/simple.factory.js class SimpleFactory { constructor(opt) { this.role = opt.role; this.permissions = opt.permissions; } // 静态方法 static create(role) { switch (role) { case 'admin': return new SimpleFactory({ role: '管理员', permissions: ['设置', '删除', '新增', '创建', '开发', '推送', '提问', '评论'] }); break; case 'developer': return new SimpleFactory({ role: '开发者', permissions: ['开发', '推送', '提问', '评论'] }); break; default: throw new Error('参数只能为 admin 或 developer'); } } show() { const str = `是一个${this.role}, 权限:${this.permissions.join(', ')}`; console.log(str); } } // 实例 const xm = SampleFactory.create('admin'); xm.show(); const xh = SampleFactory.create('developer'); xh.show(); const xl = SampleFactory.create('guest'); xl.show(); ``` 或 ```js // 0.0.2/simple.factory2.js class Role { constructor(options) { this.role = options.role; this.permissions = options.permissions; } show() { const str = `是一个${this.role}, 权限:${this.permissions.join(', ')}`; console.log(str); } } class SimpleFactory { constructor(role) { if(typeof this[role] !== 'function') { throw new Error('参数只能为 admin 或 developer'); } return this[role](); } admin() { return new Role({ role: '管理员', permissions: ['设置', '删除', '新增', '创建', '开发', '推送', '提问', '评论'] }); } developer() { return new Role({ role: '开发者', permissions: ['开发', '推送', '提问', '评论'] }); } } // 实例 const xm = new SimpleFactory('admin'); xm.show(); const xh = new SimpleFactory('developer'); xh.show(); const xl = new SimpleFactory('guest'); xl.show(); ``` 上例中,simpleFactory 就是一个简单工厂,2个实例对应不同的权限,调用工厂函数时,只需传递 admin 或 developer 就可获取对应的实例对象。 **1.简单工厂函数适用场景** 正确传参,就可以获取所需要的对象,无需知道内部实现细节; 内部逻辑(工厂函数)通过传入参数判断实例化是使用哪些类; 创建对象数量少(稳定),对象的创建逻辑不复杂; **2.简单工厂函数不适用场景** 当需要添加新的类时,就需要修改工厂方法,这违背了开放封闭原则(OCP, 对扩展开放、对源码修改封闭)。函数 create 内包含了所有创建对象(构造函数)的判断逻辑代码,如果要增加新的构造函数还需要修改函数 create(判断逻辑代码),当可选参数 role 变得更多时,那函数 create 的判断逻辑代码就变得臃肿起来,难以维护。 不适用创建多类对象; ##### 工厂方法模式 将实际创建对象工作推迟到子类当中,核心类就成了抽象类。这样添加新的类时就无需修改工厂方法,只需要将子类注册进工厂方法的原型对象中即可。 **1.ES5 实现**,ES5 没有像传统创建类的方式那样创建抽象类,所以工厂方法模式只需参考其核心思想即可。可将工厂方法看做一个实例化对象工厂类(采用安全模式类),将创建对象的基类放在工厂方法类的原型中即可。当需要添加新类时,只需挂载在 FunctionFactory.prototype 上,无需修改工厂方法,也实现了 OCP 原则。 ```js // 0.0.2/es5.function.factory.js function FunctionFactory(role) { if(!(['admin', 'developer'].indexOf(role) > -1)){ throw new Error('参数只能为 admin 或 developer'); } // 安全的工厂方法 if (this instanceof FunctionFactory) { return this[role](); } return new FunctionFactory(role); } FunctionFactory.prototype.show = function () { var str = '是一个' + this.role + ', 权限:' + this.permissions.join(', '); console.log(str) } FunctionFactory.prototype.admin = function (permissions) { this.role = '管理员'; this.permissions = ['设置', '删除', '新增', '创建', '开发', '推送', '提问', '评论']; } FunctionFactory.prototype.developer = function (permissions) { this.role = '开发者'; this.permissions = ['开发', '推送', '提问', '评论']; } var xm = FunctionFactory('admin'); xm.show(); var xh = new FunctionFactory('developer'); xh.show(); var xl = new FunctionFactory('guest'); xl.show(); ``` **2.ES6 实现**,由于 ES6 中还没有 abstract,就用 new.target 来模拟出抽象类(new.target 指向被 new 执行的构造函数),判断 new.target 是否指向了抽象类,如果是就报错。 ```js // 0.0.2/function.factory.js class FunctionFactoryBase { // 抽象类 constructor(role) { if (new.target === FunctionFactoryBase) { throw new Error('抽象类不能实例'); } this.role = role; } } class FunctionFactory extends FunctionFactoryBase { // 子类 constructor(role) { super(role); } static create(role) { switch (role) { case 'admin': return new FunctionFactory({ role: '管理员', permissions: ['设置', '删除', '新增', '创建', '开发', '推送', '提问', '评论'] }); break; case 'developer': return new FunctionFactory({ role: '开发者', permissions: ['开发', '推送', '提问', '评论'] }); break; default: throw new Error('参数只能为 admin 或 developer'); } } show() { const { role, permissions } = this.role; const str = `是一个${role}, 权限:${permissions.join(', ')}`; console.log(str) } } // let xl = new FunctionFactoryBase(); // 此行会报错,注释后方可正常执行后面 let xm = FunctionFactory.create('admin'); xm.show() let xh = FunctionFactory.create('developer'); xh.show() let xl = FunctionFactory.create('guest'); xl.show() ``` ##### 抽象工厂模式 抽象工厂只留对外的口子,不做事,留给外界覆盖(子类重写接口方法以便创建的时候指定自己的对象类型)。主要用于对产品类簇的创建,不直接生成实例(简单工厂模式和工厂方法模式都是生成实例)。 - 抽象类是一种声明但不能使用的类,子类必须先实现其方法才能调用; - 可以在抽象类中定义一套规范,供子类去继承实现; ```js // 0.0.2/abstract.factory2.js // 抽象工厂 function AbstractFactory(subType, superType) { if (typeof AbstractFactory[superType] === 'function') { //缓存类 function F() { } //继承父类属性和方法 F.prototype = new AbstractFactory[superType](); //将子类 constructor 指向子类(自己) subType.prototype.constructor = subType; //子类原型继承缓存类(父类) subType.prototype = new F(); } else { //不存在该抽象类抛出错误 throw new Error('抽象类不存在') } } // 抽象类 AbstractFactory.Phone = function () { this.type = 'Phone'; } AbstractFactory.Phone.prototype = { showType: function () { return new Error('Phone 抽象方法 showType 不能调用'); }, showPrice: function () { return new Error('Phone 抽象方法 showPrice 不能调用'); }, showColor: function () { return new Error('Phone 抽象方法 showColor 不能调用'); } } AbstractFactory.Pad = function () { this.type = 'Pad'; } AbstractFactory.Pad.prototype = { showType: function () { return new Error('Pad 抽象方法 showType 不能调用'); }, showPrice: function () { return new Error('Pad 抽象方法 showPrice 不能调用'); }, showColor: function () { return new Error('Pad 抽象方法 showColor 不能调用'); } } // 抽象工厂实现对抽象类的继承 function Iphone(type, price, color) { this.type = type; this.price = price; this.color = color; } //抽象工厂实现对 Phone 抽象类的继承 AbstractFactory(Iphone, 'Phone'); Iphone.prototype.showType = function () { return this.type; } Iphone.prototype.showPrice = function () { return this.price; } Iphone.prototype.showColor = function () { return this.color; } function Ipad(type, price, color) { this.type = type; this.price = price; this.color = color; } AbstractFactory(Ipad, 'Pad'); Ipad.prototype.showType = function () { return this.type; } Ipad.prototype.showPrice = function () { return this.price; } Ipad.prototype.showColor = function () { return this.color; } // 实例 var iphone5s = new Iphone('iphone 5s', 3000, '白色'); console.log('今天刚买了' + iphone5s.showType() + ',价格是' + iphone5s.showPrice() + ',' + iphone5s.showColor()) var iphone8s = new Iphone('iphone 8s', 8000, '白色'); console.log('今天刚买了' + iphone8s.showType() + ',价格是' + iphone8s.showPrice() + ',' + iphone8s.showColor()) var ipad = new Ipad('ipad air', 2000, '骚红色'); console.log('今天刚买了' + ipad.showType() + ',价格是' + ipad.showPrice() + ',' + ipad.showColor()) ``` **除此之外还有单例模式、适配器模式、装饰器模式、代理模式、观察者模式、迭代器模式等**
-
数据库要上云?快来领《华为云数据库开年采购全攻略》,优惠福利先知道:云数据库特价套餐低至2.7折,访问云数据库专场即可抽奖, 先抢50万云数据库专属红包,看直播再享折上折,下单满额送手机P40 Pro等大礼。 点击开启上您的上云狂欢季:https://activity.huaweicloud.com/dbs_Promotion/index.html
-
让企业核心数据安全上云,稳定高效处理与分析,我们是认真的!来开年采购季·云数据库专场,畅享一站式数据上云服务。爆款云数据库2.7折起,新购满额送华为手机P40 Pro 5G!现在点击链接还可以参与抽奖!有机会赢取价值千元礼品!→https://activity.huaweicloud.com/dbs_Promotion/index.html
上滑加载中
推荐直播
-
华为云码道 × 仓颉编程:工程化AI编码探索2026/05/27 周三 19:00-21:00
刘俊杰-华为云仓颉语言专家/李炎-华为云码道技术专家/王智鹏-OpenCangjie开源社区发起人
本场直播围绕华为云仓颉语言与华为云码道的深度结合,展示华为云智能编程从零基础到高效落地的完整生态能力。以华为云码道为引擎,仓颉语言为载体,带给大家日常提效、趣味创新到极速量产的开发体验。
回顾中
热门标签