精华内容
下载资源
问答
  • 主要为大家详细介绍了微信小程序云开发之使用云数据库,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 阿里云数据库是什么,与传统数据库有什么区别?那么什么是数据库呢?传统数据库是依照某种数据模型组织起来并存放二级存储器中的数据集合。这种数据集合具有如下特点:尽可能不重复,以最优方式为某个特定组织的多种...

    目录

    阿里云数据库 MySQL 版

    阿里云数据库 SQL Server 版

    阿里云数据库 PostgreSQL 版

    阿里云数据库 PPAS 版


    阿里云数据库是什么,与传统数据库有什么区别?那么什么是数据库呢?传统数据库是依照某种数据模型组织起来并存放二级存储器中的数据集合。这种数据集合具有如下特点:尽可能不重复,以最优方式为某个特定组织的多种应用服务,其数据结构独立于使用它的应用程序,对数据的增、删、改、查由统一软件进行管理和控制。

    阿里云提供的云数据库RDS(ApsaraDB for RDS,简称RDS)是一种稳定可靠、可弹性伸缩的在线数据库服务。基于飞天分布式系统和全SSD盘高性能存储,支持MySQL、SQL Server、PostgreSQL和PPAS(高度兼容Oracle)引擎,默认部署主备架构且提供了容灾、备份、恢复、监控、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。

    云数据库RDS支持四种数据库引擎,分别为MySQL、SQL Server、PostgreSQL和PPAS。

    阿里云数据库 MySQL 版

    MySQL 是全球最受欢迎的开源数据库,作为开源软件组合 LAMP(Linux + Apache + MySQL + Perl/PHP/Python)中的重要一环,广泛应用于各类应用。Web2.0 时代,风靡全网的社区论坛软件系统 Discuz 和博客平台 WordPress 均基于 MySQL 实现底层架构。Web3.0 时代,阿里巴巴、Facebook、Google 等大型互联网公司都采用更为灵活的 MySQL 构建了成熟的大规模数据库集群。阿里云数据库 MySQL 版基于 Alibaba 的 MySQL 源码分支,经过双 11 高并发、大数据量的考验,拥有优良的性能和吞吐量。除此之外,阿里云数据库 MySQL 版还拥有经过优化的读写分离、数据压缩、智能调优等高级功能。

     

    阿里云数据库 SQL Server 版

    SQL Server 是发行最早的商用数据库产品之一,作为 Windows 平台(IIS + .NET + SQL Server)中的重要一环,支撑着大量的企业应用。SQL Server 自带的 Management Studio 管理软件内置了大量图形工具和丰富的脚本编辑器。用户通过可视化界面即可快速上手各种数据库操作。阿里云数据库 SQL Server 版不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的 License 费用,用户无需再额外支出 License 费用。

     

    阿里云数据库 PostgreSQL 版

    PostgreSQL 是全球最先进的开源数据库。作为学院派关系型数据库管理系统的鼻祖,它的优点主要集中在对 SQL 规范的完整实现以及丰富多样的数据类型支持(JSON 数据、IP 数据和几何数据等,大部分商业数据库都不支持)。除了完美支持事务、子查询、多版本控制(MVCC)、数据完整性检查等特性外,阿里云数据库 PostgreSQL 版还集成了高可用和备份恢复等重要功能,减轻用户的运维压力。

     

    阿里云数据库 PPAS 

    PPAS(Postgres Plus Advanced Server)是一个稳定、安全且可扩展的企业级关系型数据库,基于全球最先进的开源数据库 PostgreSQL,并在性能、应用方案和兼容性等方面进行了增强,提供直接运行 Oracle 应用的能力。用户可以在 PPAS 上稳定地运行各种企业应用,同时得到更高性价比的服务。阿里云数据库 PPAS 版集成了帐号管理、资源监控、备份恢复和安全控制等功能,并将持续地更新完善。

    接下来,我们将对云数据库RDS与自建传统数据库进行简单的性能对比:

    1.       服务可用性:

    在服务可用性方面,云数据库RDS是99.95%可用的;而在自购服务器搭建的传统数据库服务中,需自行保障, 自行搭建主从复制,自建RAID等。

    2.       数据可靠性:

    对数据的可靠性来说,阿里云提供的云数据库RDS是保证99.9999%可靠的;而在自购服务器搭建的传统数据库服务中,需自行保障, 自行搭建主从复制,自建RAID等。

    3.       系统安全性:

    阿里云提供的云数据库RDS可防DDoS攻击,流量清洗,能及时有效地修复各种数据库安全漏洞,而在自购服务器搭建的传统数据库,则需自行部署,价格高昂,同时也需自行修复数据库安全漏洞。

    4.       数据库备份:

    云数据库RDS可自动为数据库进行备份,而自购服务器搭建的传统数据库需自行实现,同时需要寻找备份存放空间以及定期验证备份是否可恢复。

    5.       软硬件投入

    阿里云提供的云数据库RDS无软硬件投入,并按需付费;而自购服务器搭建的传统数据库服务器成本相对较高,对于SQL Server需支付许可证费用。

    6.       系统托管

    阿里云提供的云数据库RDS无需托管费用,而自购服务器搭建的传统数据库每台2U服务器每年超过5000元(如果需要主从,两台服务器需超过10000元/年)。

    7.       维护成本

    阿里云提供的云数据库RDS无需运维,而自购服务器搭建的传统数据库需招聘专职DBA来维护,花费大量人力成本。

    8.       部署扩容

    阿里云提供的云数据库RDS即时开通,快速部署,弹性扩容,按需开通,而自购服务器搭建的传统数据库需硬件采购、机房托管、部署机器等工作,周期较长。

    9.       资源利用率

    阿里云提供的云数据库RDS按实际结算,100%利用率,而自购服务器搭建的传统数据库需考虑峰值,资源利用率很低。

    通过上述比较可以看出,阿里云提供的云数据库RDS产品是高性能、高安全、高可靠、便宜易用的数据库服务系统,并且可以有效地减轻用户的运维压力,为用户带来安全可靠的全新体验。

     

    云数据库RDS功能

    1.       3层安全防护体系,通过十项安全合规认证,能抵御90%以上的网络攻击

    2.       3重高可用(容灾)架构,提供99.95%的业务可用性保障

    3.       弹性扩展,实现100%资源利用率

    4.       内网外网同时连接,方便本地化管理

    5.       自动备份,两年内数据恢复,解决90%以上的系统故障

    6.       自动监控预警,定期性能巡检,可以分担60%以上的运维工作

     

    云数据库RDS典型应用场景 

    云数据库RDS可以在数据上和阿里云诸多云产品打通,实现多样化的能力扩展。 

    场景一 数据异地容灾场景

    通过数据传输服务,用户可以将自建机房的数据库实时同步到公有云上任一地域的RDS实例里面。即使发生机房损毁的灾难,数据永远在阿里云有一个备份。

    阿里云数据库是什么

    场景二 读写分离场景

    应用读取请求较高,或是需要应对短期内读取流量高峰,可在RDS for MySQL实例下挂载只读实例,每个只读实例拥有独立的链接地址,由应用端自行实现读取压力分配。

    阿里云数据库是什么

    场景三 多结构数据存储

    在数据类型多样的应用中,可将高热存取数据存储于缓存产品,如云数据库Memcached版 、云数据库Redis版,将图片等非结构化资源存储于对象存储 OSS,而将链接等结构化数据存储于RDS,实现对业务数据高效存取,并相应降低成本投入。

    阿里云数据库是什么

    场景四 搜索引擎场景

    针对应用数据量较大,且有较多复杂关键词搜索场景,可搭配使用开放搜索,对亿级别数据实现百毫秒内搜索。

    阿里云数据库是什么

    场景五 大数据计算

    云数据库RDS搭配E-MapReduce,运行Hadoop、Spark分析RDS中数据,满足如日志分析、数据仓库、商业智能、机器学习、科学模拟等业务需求。

    阿里云数据库是什么

     

    展开全文
  •  首先重要的,是云数据库的读写性能。我在规划实例的配置时,主要考虑下面 2 点:  首先,云数据库要使用 SSD 硬盘,这样能够保证数据库服务器的 IO 尽量的快  其次,云数据库的内存要尽可能大,这样有尽可能...
  • 做为中小站长来说,一般购买了云服务器之后,可以自己在云服务器ECS上搭建数据库,并不需要另外购买云数据库。但是当网站的数据量规模已经大到一定程度之后,这种应用与数据库不分离的模式就会显露弊端了,会出现...

    做为中小站长来说,一般购买了云服务器之后,可以自己在云服务器ECS上搭建数据库,并不需要另外购买云数据库。但是当网站的数据量规模已经大到一定程度之后,这种应用与数据库不分离的模式就会显露弊端了,会出现服务器反应迟缓卡顿现象。

     
    云数据库结合云服务器使用,布局站库分离的网站,这样的站库分离模式速度更快,也减少了数据安全风险,更降低了运营成本。云数据库RDS提供高可用、高可靠、高安全、可扩展的托管数据库服务,性能等同于商业数据库,但是价格相比ECS自建数据库,仅需约1/3,相比自购服务器搭建数据库,仅需约1/10。云数据库与自建数据库的成本比较,请看以下对比表:

    价格对比

     
    费用云数据库RDSECS自建数据库自购服务器搭建数据库
    硬件费用和备品配件费用RDS实例的费用。例如,2 CPU、4 GB内存、存储空间 100 GB(IOPS能力可达到6800)的实例费用是8000元/年。至少需要2台ECS实例作为主备实例。2台2 CPU、4 GB内存、存储空间 100 GB(IOPS能力可达到6800)的ECS实例费用是6800元/年。
    • 至少需要2台数据库服务器。每台IOPS能力达到6800的服务器费用大约是8000元。
    • 1台用于连接前端Web服务器的内网交换机(便宜的1U非网管交换机为1000元左右)。
    • 后期硬件损坏和更换至少还要消耗30%费用。
    • 硬件花费:(8000 × 2 + 1000)× 130% = 22100元。

      每年费用:22100元/3 = 7366元(硬件按照3年折旧计算)。

    机房托管费用服务商负责,无需付费。服务商负责,无需付费。1U机柜空间托管费用为3000元/年,共有2台1U服务器和1台1U内网交换机需要计费,机房托管费用:3000 × 3 = 9000元。
    带宽费用
    • 同一地域内,ECS和RDS可以通过内网互通,且不收取费用。
    • 若在不同地域,ECS和RDS可以通过外网互通,需收取外网流量费用,详细收费标准请参见云数据库RDS详细价格信息
    • 同一地域内,ECS实例之间可以通过内网互通,不收取费用。
    • 若在不同地域,ECS实例之间可以通过外网互通,需收取外网流量费用,详细收费标准请参见公网带宽计费方式
    只用于内网,不产生公网费用。
    数据库运维工程师费用数据库维护由服务商负责,无人员成本。1个初级DBA工程师月薪至少5000/月,假设当前项目占用该工程师30%的工作量,则人员成本为5000 × 12× 30% = 18000元。1个初级DBA工程师月薪至少5000/月,假设当前项目占用该工程师30%的工作量,则人员成本为5000 × 12× 30% = 18000元。
    每年总费用8000元/年24800元/年34366元/年

    RDS MySQL与自建数据库对比优势

     
    对比项RDS MySQLECS自建自购服务器搭建数据库
    性价比
    • 弹性资源。
    • ALISQL提供各种特性功能,提升用户使用感受。
    • 备份有一半实例空间免费
    • 公网流量免费。
    • 免费使用自带的域名。
    • 更新速度快,紧跟MySQL最新版本。
    • 弹性资源。
    • 开源版无性能优化。
    • 备份空间独立收费。
    • 公网流量收费。
    • 一次投入的沉没成本大。
    • 开源版无性能优化。
    • 需要独立准备备份资源,成本极高。
    • 公网流量收费,域名费用高。
    可用性
    • 基础版约15分钟即可完成故障转移。
    • 高可用版和集群版提供自研高可用系统,实现30秒内故障恢复。
    • 只读实例自动实现负载均衡。
    • 读写分离使用方便。
    • 未来会推出分析节点,满足分析型场景需求。
    • 基础版约30分钟完成故障转移。
    • 需要单独购买高可用系统。
    • 需要单独实现或者购买负载均衡服务。
    • 分析型场景需要与分析型数据库结合,搭建难度大、成本高。
    • 单机实例,少则两小时,多则等待配货数周。
    • 需要单独购买高可用系统。
    • 需要单独实现或者购买负载均衡设备。
    • 分析型场景需要与分析型数据库结合,搭建难度大、成本高。
    可靠性
    • 数据可靠性高,自动主备复制、数据备份、日志备份等。
    • MySQL 5.6三节点企业版,实现RPO(Recovery Point Object)=0。
    • MySQL 5.7三节点企业版(MGR),实现RPO=0、RTO(Recovery Time Objective) < 1分钟。
    • 在好的架构下才能实现高可靠性。
    • 实现RPO=0的成本极高,需要单独购买研发服务。
    • 数据可靠性一般,取决于单块磁盘的损害概率。
    • 实现RPO=0的成本极高,需要单独购买研发服务。
    易用性
    • 自动化备份恢复系统,支持按时间点恢复、单库备份恢复等,流式备份对实例性能影响小。
    • 自动化监控告警系统,支持秒级监控,覆盖实例和数据库所有性能指标,支持短信、邮箱、旺旺、钉钉等通道,且根据消费有大额度的免费短信数量。
    • 支持异地容灾
    • 支持一键版本升级
    • 无自动备份系统,流式备份能力需要单独实现,实现按时间点恢复功能成本高。
    • 需要单独购买监控系统,在云监控中配置告警系统。
    • 技术实现难度极大。
    • 版本升级成本高。
    • 无自动备份系统,流式备份能力需要单独实现,实现按时间点恢复功能成本高。
    • 需要单独购买或配置监控系统,通道较少,成本较高。
    • 异地数据中心成本极高,技术实现难度也大,很难实现异地容灾。
    • 版本升级成本高。
    性能
    • MySQL的本地SSD盘实例性能极佳。
    • MySQL的ESSD性能较SSD提升显著。
    • 增加只读实例之后性能强劲且负载均衡。
    • CloudDBA提供高级优化能力。
    • SQL洞察满足大部分监控及性能优化数据库场景。
    • ECS本地盘意味着降低数据可靠性,采用云盘需要规划架构,成本支出较大。
    • 基于ESSD的ECS自建MySQL性能低于基于ESSD的RDS MySQL性能。
    • 实现集群版的难度较高,咨询成本较高,维护成本极高。
    • 依赖资深DBA,支出大,受制于人。
    • 比云计算硬件更新速度慢,性能一般都会低于云数据库。
    • 难以实现计算和存储分离,若使用高端存储实现计算和存储分离,动辄需要数千万支出。
    • 实现集群版的难度较高,咨询成本较高,维护成本极高。
    • 依赖资深DBA,支出大,受制于人。
    安全
    • 事前防护:白名单安全组专有网络隔离
    • 事中保护:连接链路加密数据落盘加密(BYOK覆盖多种存储介质)。
    • 事后审计:SQL洞察历史事件
    • 事前防护:白名单、安全组、专有网络隔离。
    • 事中保护:需要单独实现连接链路加密和数据落盘加密,BYOK密钥轮转难度大,咨询成本较高。
    • 事后审计:审计困难,需要单独保存SQL日志。
    • 事前防护:白名单和专有网络隔离的咨询成本较高。
    • 事中保护:需要单独实现连接链路加密和数据落盘加密,BYOK密钥轮转难度大,咨询成本较高。
    • 事后审计:审计困难,需要单独保存SQL日志。

    RDS SQL Server与自建数据库对比优势

     
    对比项RDS SQL ServerECS自建自购服务器搭建数据库
    性价比
    • 弹性资源。
    • WEB版性价比极高。
    • 备份有一半实例空间免费
    • 公网流量免费。
    • 弹性资源。
    • 不可使用WEB版。
    • 备份空间独立收费。
    • 公网流量收费。
    • 一次投入的沉没成本大。
    • 不可使用WEB版。
    • 需要独立准备备份资源,成本极高。
    • 公网流量收费,域名费用高。
    可用性
    • 基础版约15分钟即可完成故障转移。
    • 高可用版和集群版提供自研高可用系统,实现30秒内故障恢复。
    • 集群版的只读实例自动实现负载均衡。
    • 集群版的读写分离使用方便。
    • 基础版约30分钟完成故障转移。
    • 需要单独购买高可用系统。
    • 需要单独实现或者购买负载均衡服务。
    • 单机实例,少则两小时,多则等待配货数周。
    • 需要单独购买高可用系统。
    • 需要单独实现或者购买负载均衡设备。
    可靠性
    • 数据可靠性高,自动主备复制、数据备份、日志备份等。
    • 集群版可实现RPO(Recovery Point Object)=0。
    • 在好的架构下才能实现高可靠性。
    • 实现RPO=0的成本极高,需要单独购买研发服务。
    • 数据可靠性一般,取决于单块磁盘的损害概率。
    • 实现RPO=0的成本极高,需要单独购买研发服务。
    易用性
    • 自动化备份恢复系统,支持按时间点恢复、单库备份恢复等,流式备份对实例性能影响小。
    • 自动化监控告警系统,支持秒级监控,覆盖实例和数据库所有性能指标,支持短信、邮箱、旺旺、钉钉等通道,且根据消费有大额度的免费短信数量。
    • 即将支持异地容灾。
    • 无自动备份系统,流式备份能力需要单独实现,实现按时间点恢复功能成本高。
    • 需要单独购买监控系统,在云监控中配置告警系统。
    • 技术实现难度极大。
    • 无自动备份系统,流式备份能力需要单独实现,实现按时间点恢复功能成本高。
    • 需要单独购买或配置监控系统,通道较少,成本较高。
    • 异地数据中心成本极高,技术实现难度也大,很难实现异地容灾。
    性能
    • SQL Server 2008 R2的本地SSD盘实例性能极佳,SQL Server 201x版本新计算存储分离架构可享受硬件红利 。
    • SQL Server的ESSD性能较SSD提升显著。
    • 增加只读实例之后性能强劲且负载均衡。
    • CloudDBA提供高级优化能力。
    • ECS本地盘意味着降低数据可靠性,采用云盘需要规划架构,成本支出较大。
    • 基于ESSD的ECS自建SQL Server性能低于基于ESSD的RDS SQL Server性能。
    • 实现集群版的难度较高,咨询成本较高,维护成本极高。
    • 依赖资深DBA,支出大,受制于人。
    • 比云计算硬件更新速度慢,性能一般都会低于云数据库。
    • 难以实现计算和存储分离,若使用高端存储实现计算和存储分离,动辄需要数千万支出。
    • 实现集群版的难度较高,咨询成本较高,维护成本极高。
    • 依赖资深DBA,支出大,受制于人。
    安全
    • 事前防护:白名单专有网络隔离
    • 事中保护:连接链路加密数据落盘加密
    • 事后审计:SQL审计(数据库审计)历史事件
    • 微软安全更新,阿里技术兜底。
    • 事前防护:白名单、安全组、专有网络隔离。
    • 事中保护:需要单独实现连接链路加密和数据落盘加密,咨询成本较高。
    • 事后审计:审计困难,需要单独保存SQL日志。
    • 事前防护:白名单和专有网络隔离的咨询成本较高。
    • 事中保护:需要单独实现连接链路加密和数据落盘加密,咨询成本较高。
    • 事后审计:审计困难,需要单独保存SQL日志。
    法律
    • 附带License,无法律风险。
    • 即将支持自带License,降低整体成本支出。
    只有单独购买License。只有单独购买License,否则法律风险极大。

    RDS PostgreSQL与自建数据库对比优势

     
    对比项RDS PostgreSQLECS自建自购服务器搭建数据库
    性价比
    • 弹性资源。
    • 内核优化,提供各种特性功能,提升用户使用感受。
    • 备份有一半实例空间免费
    • 公网流量免费。
    • 免费使用自带的域名。
    • 更新速度快,紧跟PostgreSQL最新版本。
    • 弹性资源。
    • 开源版无性能优化。
    • 备份空间独立收费。
    • 公网流量收费。
    • 一次投入的沉没成本大。
    • 开源版无性能优化。
    • 需要独立准备备份资源,成本极高。
    • 公网流量收费,域名费用高。
    可用性
    • 基础版约15分钟即可完成故障转移。
    • 高可用版提供自研高可用系统,实现30秒内故障恢复。
    • 只读实例自动实现负载均衡。
    • 基础版约30分钟完成故障转移。
    • 需要单独购买高可用系统。
    • 需要单独实现或者购买负载均衡服务。
    • 单机实例,少则两小时,多则等待配货数周。
    • 需要单独购买高可用系统。
    • 需要单独实现或者购买负载均衡设备。
    可靠性
    • 数据可靠性高,自动主备复制、数据备份、日志备份等。
    • 支持设置保护级别,最高RPO=0。
    • 在好的架构下才能实现高可靠性。
    • 实现RPO=0的成本极高,需要单独购买研发服务。
    • 数据可靠性一般,取决于单块磁盘的损害概率。
    • 实现RPO=0的成本极高,需要单独购买研发服务。
    易用性
    • 自动化备份恢复系统,支持按时间点恢复、单库备份恢复等,流式备份对实例性能影响小。
    • 自动化监控告警系统,覆盖实例和数据库所有性能指标,支持短信、邮箱、旺旺、钉钉等通道,且根据消费有大额度的免费短信数量。
    • 无自动备份系统,流式备份能力需要单独实现,实现按时间点恢复功能成本高。
    • 需要单独购买监控系统,在云监控中配置告警系统。
    • 无自动备份系统,流式备份能力需要单独实现,实现按时间点恢复功能成本高。
    • 需要单独购买或配置监控系统,通道较少,成本较高。
    性能
    • PostgreSQL的本地SSD盘实例性能极佳。
    • PostgreSQL的ESSD性能较SSD提升显著。
    • 增加只读实例之后性能强劲且负载均衡。
    • CloudDBA提供高级优化能力。
    • SQL审计(数据库审计)满足大部分监控及性能优化数据库场景。
    • ECS本地盘意味着降低数据可靠性,采用云盘需要规划架构,成本支出较大。
    • 基于ESSD的ECS自建PostgreSQL性能低于基于ESSD的RDS PostgreSQL性能。
    • 依赖资深DBA,支出大,受制于人。
    • 比云计算硬件更新速度慢,性能一般都会低于云数据库。
    • 难以实现计算和存储分离,若使用高端存储实现计算和存储分离,动辄需要数千万支出。
    • 依赖资深DBA,支出大,受制于人。
    安全
    • 事前防护:白名单安全组专有网络隔离
    • 事中保护:连接链路加密云盘加密
    • 事后审计:SQL审计(数据库审计)历史事件
    • 事前防护:白名单、安全组、专有网络隔离。
    • 事中保护:需要单独实现连接链路加密。
    • 事后审计:审计困难,需要单独保存SQL日志。
    • 事前防护:白名单和专有网络隔离的咨询成本较高。
    • 事中保护:需要单独实现连接链路加密。
    • 事后审计:审计困难,需要单独保存SQL日志。

    综合上面的对比表格,尊托云数给大家总结一下云数据库与传统自建数据库的对比如下:

    1.       服务可用性:    在服务可用性方面,云数据库RDS是99.95%可用的;而在自购服务器搭建的传统数据库服务中,需自行保障, 自行搭建主从复制,自建RAID等。 

    2.       数据可靠性:    对数据的可靠性来说,云数据库RDS是保证99.9999%可靠的;而在自购服务器搭建的传统数据库服务中,需自行保障, 自行搭建主从复制,自建RAID等。

    3.       系统安全性:    云数据库RDS可防DDoS攻击,流量清洗,能及时有效地修复各种数据库安全漏洞,而在自购服务器搭建的传统数据库,则需自行部署,价格高昂,同时也需自行修复数据库安全漏洞。

    4.       数据库备份:   云数据库RDS可自动为数据库进行备份,而自购服务器搭建的传统数据库需自行实现,同时需要寻找备份存放空间以及定期验证备份是否可恢复。

    5.       软硬件投入:   云数据库RDS无软硬件投入,并按需付费;而自购服务器搭建的传统数据库服务器成本相对较高,对于SQL Server需支付许可证费用。

    6.       系统托管:    云数据库RDS无需托管费用,而自购服务器搭建的传统数据库每台2U服务器每年超过5000元(如果需要主从,两台服务器需超过10000元/年)。

    7.       维护成本:    云数据库RDS无需运维,而自购服务器搭建的传统数据库需招聘专职DBA来维护,花费大量人力成本。

    8.       部署扩容:    云数据库RDS即时开通,快速部署,弹性扩容,按需开通,而自购服务器搭建的传统数据库需硬件采购、机房托管、部署机器等工作,周期较长。

    9.       资源利用率:    云数据库RDS按实际结算,100%利用率,而自购服务器搭建的传统数据库需考虑峰值,资源利用率很低。

    现在大的云计算服务商都有提供云数据库产品,比如:腾讯云云数据库、阿里云云数据库、华为云云数据库等等(正在进行的品牌云数据库1折抢购活动可进入尊托云数9i0i.com了解详情)。大型网站应用有必要购买云数据库,有利于网站的健康稳定运营及长期发展。一般需要云数据库的行业应用场景主要有:电商/金融类网站、游戏数据缓存、大数据计算,连接大数据存储、计算和可视化引擎等。

    展开全文
  • 主要介绍了微信小程序云开发修改云数据库中的数据方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • 微信小程序云开发之云数据库入门

    万次阅读 2020-07-20 12:28:34
    微信小程序云开发之云数据库入门 介绍 开发者可以使用云开发开发微信小程序、小游戏,无需搭建服务器,即可使用云端能力。 其基础能力数据库,是一个JSON数据库,作用是无需自建数据库,就可以在微信小程序前端操作...

    微信小程序云开发之云数据库入门

    介绍

    开发者可以使用云开发开发微信小程序、小游戏,无需搭建服务器,即可使用云端能力。
    其基础能力数据库,是一个JSON数据库,作用是无需自建数据库,就可以在微信小程序前端操作数据库,也能在云函数中读写数据库。

    前置条件

    • 在新建项目是一定要勾选开启云服务
    • 在微信开发者工具中点击云开发构建集合。

    注意事项

    数据库 API 分为小程序端和服务端两部分,小程序端 API 拥有严格的调用权限控制,开发者可在小程序内直接调用 API 进行非敏感数据的操作。对于有更高安全要求的数据,可在云函数内通过服务端 API 进行操作。云函数的环境是与客户端完全隔离的,在云函数上可以私密且安全的操作数据库。

    简言之:读写数据权限方面,微信小程序最低,云函数和云数据库一样高。

    如果我们需要给予小程序相应权限,也是有办法的。我们可以在云开发控制台中设置微信小程序读取权限来达到自身项目的需求。

    实例

    该实例包含数据库开发全过程,涉及链接 获取集合 增删改查 检索,新建好名称为user的集合就能运行,供大家借鉴参考。(增删改查权限如果云开发控制台没有设置,有可能报错,设置一下即可)

    废话不说,源码献上

    demo.wxml

    
    <!--index.wxml-->
    <view class="container">
      <!-- 用户 openid -->
      <view class="userinfo">
        <button open-type="getUserInfo" bindgetuserinfo="onGetUserInfo" class="userinfo-avatar" style="background-image: url({{avatarUrl}})" size="default"></button>
        <view class="userinfo-nickname-wrapper">
          <button class="userinfo-nickname" bindtap="onGetOpenid">点击获取 openid</button>
        </view>
      </view>
      <!-- 增加数据 -->
      <view class="uploader">
        <view bindtap="addData" class="uploader-text">
          <text>增加数据</text>
        </view>
        <view class="page-body">
          <form catchsubmit="formSubmit" catchreset="formReset" hidden="{{isFormHidden}}">
            <!-- 开关
              <view class="page-section page-section-gap">
                <view class="page-section-title">switch</view>
                <switch name="switch" />
              </view> -->
            <!-- <view class="section">
              <view class="section__title">性别</view>
              <picker bindchange="bindPickerChange" value="{{index}}" range="{{array}}">
                <view class="picker">
                  性别: {{array[index]}}
                </view>
              </picker>
            </view> -->
            <!-- 单选
              <view class="page-section page-section-gap">
                <view class="page-section-title">radio</view>
                <radio-group name="radio">
                  <label>
                    <radio value="radio1" />选项一</label>
                  <label>
                    <radio value="radio2" />选项二</label>
                </radio-group>
              </view> -->
            <!-- 多选
              <view class="page-section page-section-gap">
                <view class="page-section-title">checkbox</view>
                <checkbox-group name="checkbox">
                  <label>
                    <checkbox value="checkbox1" />选项一</label>
                  <label>
                    <checkbox value="checkbox2" />选项二</label>
                </checkbox-group>
              </view> -->
            <!-- 滑动选择
              <view class="page-section page-section-gap">
                <view class="page-section-title">slider</view>
                <slider value="50" name="slider" show-value></slider>
              </view> -->
            <!-- 输入框 -->
            <view class="page-section">
              <view class="page-section-title">
                <input class="weui-input" name="userName" placeholder="请输入用户名称" />
              </view>
            </view>
            <!-- 输入框 -->
            <view class="page-section">
              <view class="page-section-title">
                <input class="weui-input" name="itCard" placeholder="请输入昵称" />
              </view>
            </view>
            <!-- 输入框 -->
            <view class="page-section">
              <view class="page-section-title">
                <input class="weui-input" name="phone" placeholder="请输入电话" />
              </view>
            </view>
            <!-- 输入框 -->
            <view class="page-section">
              <view class="page-section-title">
                <input class="weui-input" name="email" placeholder="请输入邮箱" />
              </view>
            </view>
            <!-- 提交 -->
            <view class="btn-area">
              <button open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber">提交</button>
              <button style="margin: 30rpx 0" type="primary" formType="submit">Submit</button>
              <button style="margin: 30rpx 0" formType="reset">Reset</button>
            </view>
          </form>
        </view>
      </view>
      <!-- 查看数据 -->
      <view class="uploader">
        <view bindtap="seeData" class="uploader-text">
          <text>查看数据</text>
        </view>
        <view class="uploader-text" wx:for="{{user}}" wx:key="key">
          <text>{{item.userName}}</text>
        </view>
      </view>
      <!-- 修改数据 -->
      <view class="uploader">
        <view bindtap="updata" class="uploader-text">
          <text>修改数据</text>
        </view>
        <view class="page-body">
          <form catchsubmit="updatasubmit" catchreset="updatareset" hidden="{{isupdataform}}">
            <view class="btn-area">
              <input name="userName" placeholder="重新输入姓名"></input>
            </view>
            <view class="btn-area">
              <button style="margin:30rpx 0" type="primary" formType="submit">更新</button>
              <button style="margin:30rpx 0" type="warn" formType="reset">重置</button>
            </view>
          </form>
        </view>
      </view>
      <!-- 删除数据 -->
      <view class="uploader">
        <view bindtap="deleteData" class="uploader-text">
          <text>删除最近一条数据</text>
        </view>
        <view class="uploader-text" wx:for="{{users}}" wx:key="key">
          <text>{{item.userName}}</text>
        </view>
      </view>
      
    </view>
    

    demo.js

    
    //index.js
    const app = getApp()
    
    //获取数据库环境引用
    const db = wx.cloud.database({
      env: "输入自己的数据库环境,也可不输入,不输入默认查找当前环境"
    })
    
    //链接数据库中的集合
    const pave = db.collection("PavmentRecord")
    const user = db.collection("user")
    
    // util.js
    //格式化日期,输出格式为y-m-d h m s
    const formatTime = date => {
      const year = date.getFullYear()
      const month = date.getMonth() + 1
      const day = date.getDate()
      const hour = date.getHours()
      const minute = date.getMinutes()
      const second = date.getSeconds()
      return [year, month, day].map(formatNumber).join('/') + ' ' + [hour, minute].map(formatNumber).join(':')   //返回年月日,时分秒
    }
    
    //转换int类型为string
    const formatNumber = n => {
      n = n.toString()
      return n[1] ? n : '0' + n
    }
    
    
    Page({
      data: {
        avatarUrl: '../../images/user-unlogin.png',
        userInfo: {},
        logged: false,
        takeSession: false,
        requestResult: '',
        isFormHidden: true,
        isupdataform: true,
        users: {},
        array: ['男', '女'],
        cloud: ''
      },
      onShareAppMessage() {
        return {
          title: 'picker-view',
          path: 'page/component/pages/picker-view/picker-view'
        }
      },
      onLoad: function () {
        if (!wx.cloud) {
          wx.redirectTo({
            url: '../chooseLib/chooseLib',
          })
          return
        }
        var that = this
        // 获取用户信息
        wx.getSetting({
          success: res => {
            if (res.authSetting['scope.userInfo']) {
              // 已经授权,可以直接调用 getUserInfo 获取头像昵称,不会弹框
              wx.getUserInfo({
                success: res => {
                  that.setData({
                    avatarUrl: res.userInfo.avatarUrl,
                    userInfo: res.userInfo
                  })
                }
              })
            }
          }
        })
      },
      bindPickerChange: function (e) {
        console.log('picker发送选择改变,携带值为', e.detail.value)
        this.setData({
          index: e.detail.value
        })
      },
      onGetUserInfo: function (e) {
        if (!this.data.logged && e.detail.userInfo) {
          this.setData({
            logged: true,
            avatarUrl: e.detail.userInfo.avatarUrl,
            userInfo: e.detail.userInfo
          })
        }
      },
      onGetOpenid: function () {
        // 调用云函数
        wx.cloud.callFunction({
          name: 'login',
          data: {},
          success: res => {
            console.log('[云函数] [login] user openid: ', res.result.openid)
            app.globalData.openid = res.result.openid
            wx.navigateTo({
              url: '../userConsole/userConsole',
            })
          },
          fail: err => {
            console.error('[云函数] [login] 调用失败', err)
            wx.navigateTo({
              url: '../deployFunctions/deployFunctions',
            })
          }
        })
      },
      //增加数据
      addData: function () {
        this.setData({
          isFormHidden: false
        })
      },
      getPhoneNumber: function (e) {
        console.log(e)
      },
      //提交表单
      formSubmit(e) {
        const ur = e.detail.value;
        console.log("提交表单信息如下:")
        console.lot(ur)
        var date = formatTime(new Date());
        console.log(date)
        pave.add({
          data: {
            userName: 'test',
            userPhone: '15239942334',
            diseaseName: "test",
            symCom: "test",
            recordTime: date,
            payMoney: 100.0
          },
        }).then(res => {
          console.log(res)
        }).catch(function (e) {
          console.log(e)
        })
      },
      //重置表单
      formReset(e) {
        console.log('form发生了reset事件,携带数据为:', e.detail.value)
        this.setData({
          chosen: ''
        })
      },
      //查看数据
      seeData(e) {
        user.get().then(
          res => {
            console.log(res.data)
            this.setData({
              user: res.data
            })
          }
        )
      },
      //修改数据
      updata(e) {
        this.setData({
          isupdataform: false
        })
      },
      updatasubmit(e) {
      //查找user集合中id为以下数据的值,可以在e中获取,这里我简单写了一个。
        user.where({
          "_id": 'dc277a235f081fc20009534043d370cc'
        }).set({
          data: {
            "userName": e.data.userName
          },
          success: function (res) {
            console.log("更新成功:" + res)
          }
        })
      },
      updatareset(e) {
        this.setData({
          chosen: ''
        })
      },
      deleteData(e) {
        var that
        wx.cloud.callFunction({
          name: 'deleteData',
          data: {
            object: 'user',
            id: 'a7d38b365f0852c2000c0a3b0b7aae7a'
          }
        }).then(res => {
          console.log(res)
          that = res.data
        })
    
      }
    })
    
    
    

    demo.wxss

    
    /**index.wxss**/
    page {
      background: #f6f6f6;
      display: flex;
      flex-direction: column;
      justify-content: flex-start;
    }
    .userinfo, .uploader, .tunnel {
      margin-top: 40rpx;
      height: 140rpx;
      width: 100%;
      background: #fff;
      border: 1px solid rgba(0, 0, 0, 0.1);
      border-left: none;
      border-right: none;
      display: flex;
      flex-direction: row;
      align-items: center;
      transition: all 300ms ease;
    }
    .userinfo {
      padding-left: 120rpx;
    }
    .userinfo-avatar {
      width: 100rpx;
      height: 100rpx;
      margin: 20rpx;
      border-radius: 50%;
      background-size: cover;
      background-color: white;
    }
    .userinfo-avatar[size] {
      width: 100rpx;
    }
    .userinfo-avatar:after {
      border: none;
    }
    .userinfo-nickname {
      font-size: 32rpx;
      color: #007aff;
      background-color: white;
      background-size: cover;
      text-align: left;
      padding-left: 0;
      margin-left: 10px;
    }
    .userinfo-nickname::after {
      border: none;
    }
    .userinfo-nickname-wrapper {
      flex: 1;
    }
    .uploader, .tunnel {
      height: auto;
      padding: 0 0 0 40rpx;
      flex-direction: column;
      align-items: flex-start;
      box-sizing: border-box;
    }
    .uploader-text, .tunnel-text {
      width: 100%;
      line-height: 52px;
      font-size: 34rpx;
      color: #007aff;
    }
    .uploader-container {
      width: 100%;
      height: 400rpx;
      padding: 20rpx 20rpx 20rpx 0;
      display: flex;
      align-content: center;
      justify-content: center;
      box-sizing: border-box;
      border-top: 1px solid rgba(0, 0, 0, 0.1);
    }
    .uploader-image {
      width: 100%;
      height: 360rpx;
    }
    .tunnel {
      padding: 0 0 0 40rpx;
    }
    .tunnel-text {
      position: relative;
      color: #222;
      display: flex;
      flex-direction: row;
      align-content: center;
      justify-content: space-between;
      box-sizing: border-box;
      border-top: 1px solid rgba(0, 0, 0, 0.1);
    }
    .tunnel-text:first-child {
      border-top: none;
    }
    .tunnel-switch {
      position: absolute;
      right: 20rpx;
      top: -2rpx;
    }
    .disable {
      color: #888;
    }
    .service {
      position: fixed;
      right: 40rpx;
      bottom: 40rpx;
      width: 140rpx;
      height: 140rpx;
      border-radius: 50%;
      background: linear-gradient(#007aff, #0063ce);
      box-shadow: 0 5px 10px rgba(0, 0, 0, 0.3);
      display: flex;
      align-content: center;
      justify-content: center;
      transition: all 300ms ease;
    }
    .service-button {
      position: absolute;
      top: 40rpx;
    }
    .service:active {
      box-shadow: none;
    }
    .request-text {
      padding: 20rpx 0;
      font-size: 24rpx;
      line-height: 36rpx;
      word-break: break-all;
    }
    
    
    

    demo.json

    
    {
      "usingComponents": {},
      "navigationBarTitleText":"数据操作"
    }
    
    

    更多微信小程序相关查看我的程序员提升专栏,有需要请评论区留言。

    展开全文
  • 进行腾讯云高校俱乐部学生认证三、申请学生云数据库(非高校用户请略过)四、申请个人开发者云数据库五、使用腾讯云mysql云数据库1.使用SQL工具进行数据操作(1)使用腾讯云自带的控制台进行数据操作(2)使用...

    一、注册腾讯云账号

    首先,点击访问腾讯云登录网页进行账号注册。这里步骤很简单,基本上就是绑定微信等,不做过多讲解。

    二、进行高校学生认证(非高校用户请略过)

    1.进行云+校园的认证

    点击访问云+校园的认证,在这里填写自己就读的高校信息即可。
    在这里插入图片描述

    2.进行腾讯云高校俱乐部学生认证

    这个认证与我们申请腾讯云mysql没有关系,不感兴趣的可以略过。这里是腾讯云的云梯计划,通过云梯计划高校学生可以系统的学习腾讯云服务。这里有很不错的课程、实验和认证考试。点击进行高校俱乐部学生认证,需要注意的是,这里的学生认证需要edu教育邮箱,就是刚上大学时候学校发的那个。

    三、申请学生云数据库(非高校用户请略过)

    点击访问云+校园。经过上一步的学生认证,我们基本上就可以以打骨折的价格白嫖云数据库了。这里的规格请根据自身需求来选择。
    在这里插入图片描述
    By the way,在云+校园页面你也可以申请到价格极低的学生云服务器,通过云服务器你可以使你的毕设上云,实现接入互联网的功能。除此以外,更有意思的是腾讯云服务器可以访问谷歌等网站,你可以用腾讯云服务器搭建一个中转服务,能干什么你懂的,有兴趣的可以试一下。

    四、申请个人开发者云数据库

    个人开发者没有高校用户的特权,但是腾讯云对个人开发者还是比较友好的,也提供了相应的体验服务。我们可以通过体验服务白嫖腾讯云服务,点击访问腾讯云产品免费体验页面。这种免费体验的时间一般很短,而且只有一次体验机会,所以请好好把握使用的机会。高校用户也可以使用免费体验的权利,与高校特权不冲突。
    在这里插入图片描述

    五、使用腾讯云mysql云数据库

    1.使用SQL工具进行数据操作

    (1)使用腾讯云自带的控制台进行数据操作

    1)点击访问腾讯云控制台
    在这里插入图片描述
    2)选择“我的资源”——》“云数据库”进入数据库管理界面

    在这里插入图片描述
    在这里插入图片描述
    3)点击登录,输入数据库内部的账号和密码(这里以root用户为例),就可以进入DMC - 数据库管理控制台。
    在这里插入图片描述
    在这里插入图片描述
    4)使用SQL语句
    在这里插入图片描述
    5)点击数据管理,可以进行数据导入和导出
    数据导入:
    在这里插入图片描述
    数据导出:
    在这里插入图片描述

    (2)使用Navicat进行数据操作

    Navicat是一款很热门的数据库管理与操作软件。这里提供破解版第三方网站的下载方式,亲测可用。

    1)在数据库管理界面点击管理,查看实例详情
    在这里插入图片描述
    2)开启外网访问
    在这里插入图片描述
    3)在Navicat中新建连接
    在这里插入图片描述
    4)使用图形化界面进行操作
    在这里插入图片描述
    5)使用SQL进行操作
    在这里插入图片描述

    2.使用JDBC驱动进行数据操作

    通过JDBC驱动,我们可以在Java程序中对数据库数据进行操作。下面的例子,使用IDEA的Maven项目来解决JDBC依赖。
    1)通过IDEA创建一个Maven项目,并将下面的代码添加到pom.xml

        <dependencies>
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>8.0.21</version>
            </dependency>
        </dependencies>
    

    2)加载Maven变更
    刚添加完依赖不要急着去运行程序,这时候依赖还是红的,我们需要先加载Maven变更,也就是点下图这个地方。
    在这里插入图片描述
    3)编写测试程序
    此处代码为查询我Study数据库中student表的数据。
    student表:

    idname
    1Tom
    2Mary
    3Trump

    代码:

    import java.sql.*;
    
    public class test {
        public static void main(String[] args) throws Exception {
            //注册驱动
            Class.forName("com.mysql.jdbc.Driver");  // 此处为MySQL8.0以下版本的写法
            // com.mysql.cj.jdbc.Driver  (这是MySQL8.0及以上版本的写法)
    
            //URL、User、Password
            String URL = "jdbc:mysql://外网地址:外网端口/需要链接的数据库?useUnicode=true&characterEncoding=UTF8&serverTimezone=Asia/Shanghai";
            // jdbc:mysql://主机名或IP地址:MySQL所使用的端口号/数据库名称?是否使用Unicode编码&具体使用那一种编码&授时地点(这是MySQL8.0及以上的写法,注意腾讯云一般使用的是5.7版本)
            //jdbc:mysql://外网地址:外网端口/需要连接的数据库  (这是MySQL8.0以下版本的写法)
            String User = "root";  // 这里为你的用户名
            String Password = "123456";  // 这里为数据库密码
    
            //创建连接
            Connection conn = DriverManager.getConnection(URL, User, Password);  // 创建conn连接对象
            Statement stmt = conn.createStatement();  // 实例化Statement对象
            String SQL = "select * from student;";  // SQL语句,此处报警是因为我没有在IDEA里设置SQL方言
            ResultSet rs = stmt.executeQuery(SQL);  // 执行SQL语句并返回结果集
            System.out.println("id    name");  //  打印student表的属性名
            while(rs.next()){  // 按行遍历结果集
                int id = rs.getInt("id");  // 从结果集中获取id属性的值
                String name = rs.getString("name");  // 从结果集中获取name属性的值
                System.out.println(id + "     " + name);  // 打印id和name
            }
        }
    }
    

    4)进行连接,测试成功
    在这里插入图片描述
    Last but not least,如果本文对你有帮助,请点赞并收藏,欢迎各路大神来评论区留言。

    展开全文
  • 微信小程序云开发中的云数据库

    千次阅读 2020-05-02 16:08:18
    一、云数据库的说明 提供增删改查能力的mongoDB数据库 , 是一个非关系型数据库, 是以文档对象存在的 数据库 >> 集合(数组) >> 文档(对象) 二、可视化操作数据库 创建两个集合 添加两条记录 name ...
  • 云数据库 MySQL 产品认证题库及相关答案
  • 云数据库

    2021-02-24 01:21:39
    文章首先对云数据库概述、云数据库产品、云数据库系统架构、AmazonAWS(AmazonWebServices)和云数据库、微软云数据库SQLAzure等相关内容。本文来自博客园,由火龙果软件Anna编辑、推荐。云计算的概念:通过整合、...
  • 云数据库与传统数据库有什么区别

    千次阅读 2020-06-23 09:22:22
    阿里云提供的云数据库RDS(ApsaraDB for RDS,简称RDS)是一种稳定可靠、可弹性伸缩的在线数据库服务。基于飞天分布式系统和全SSD盘高性能存储,支持MySQL、SQL Server、PostgreSQL和PPAS(高度兼容Oracle)引擎,
  • @[TOC]微信小程序云数据库实现增删改查 微信云数据库 云开发提供了一个 JSON 数据库,数据库中的每条记录都是一个 JSON 格式的对象。一个数据库可以有多个集合(相当于关系型数据中的表),集合可看做一个 JSON 数组...
  • 云数据库管理与数据迁移,云数据库管理与数据迁移,云数据库管理与数据迁移,云数据库管理与数据迁移,云数据库管理与数据迁移,云数据库管理与数据迁移
  • 微信小程序云开发之云数据库

    千次阅读 2019-08-27 10:52:00
    本篇讲述微信小程序云开发中的云数据库 云开发提供了一个JSON数据库(文档型数据库),提供2GB免费存储空间,这个JSON数据库不同于传统的关系型数据库。 传统的关系型数据库像我们的excel表格一样,是有行有列的,每一...
  • 什么是云数据库RDS?

    千次阅读 2019-09-23 13:53:49
    赶快放弃传统的开发模式,来使用阿里云的云数据库RDS吧。 云数据库RDS具有低成本、高性能、轻量运维,且即买即用,随意变配的特点。RDS是一种在线的关系型数据库服务,在云端运行,基于阿里云飞天分布式操作系统和全...
  • 主要介绍了微信小程序函数添加数据到数据库的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • 主要为大家详细介绍了微信小程序开发之数据库操作,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 微信小程序·云开发 云数据库的基本使用

    万次阅读 多人点赞 2018-12-28 17:19:14
    这篇文章就是云数据库使用的一些总结。 刚开始看到这个云数据库的时候,第一感觉就是,这不就是MongoDB吗。 这就简单了,毕竟MongoDB我自己瞎玩的时候用的挺多的,撸起袖子就是干。 1. 创建集合 首先开通微信小...
  • 什么是云数据库Redis版

    千次阅读 2019-10-21 16:56:01
    什么是阿里云数据库Redis版 云数据库Redis版(ApsaraDB for Redis)是兼容开源Redis协议标准、提供内存加硬盘的混合存储方式的数据库服务,基于高可靠双机热备架构及可平滑扩展的集群架构,满足高读写性能场景及弹性...
  • 数据库管理软件承载着信息系统中的... 本白皮书紧密围绕关系型云数据库应用过程中的关键问题,梳理了关系型云数据库的发展状况与技术体系,分析了关系型云数据库选型方法、业务影响评估、实施路径,并提出了相关建议。
  • 主要为大家详细介绍了小程序开发实现数据库异步操作同步化,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 阿里服务器数据库账号密码是什么,阿里虚拟机数据库。在阿里ecs服务器上部署数据库后,在平常的操作中可能会遇到些问题,可以先做个大致的了解:如果您想看更多的在ecs上的数据库的相关操作,请前往以下两个...
  • 主要介绍了python操作小程序云数据库实现简单的增删改查功能,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
  • 云数据库RDS是什么

    千次阅读 2021-02-04 19:14:56
    关系型数据库(RDS)是一种稳定可靠、可弹性伸缩的在线数据库服务。具有多重安全防护措施和完善的性能监控体系,并提供专业的数据库备份、恢复及优化方案,使您能专注于应用开发和业务发展。关系型数据库(Relational ...
  • 第一个函数,客户端访问此接口时返回一个“Hello uniCloud!”。 函数hello.js代码如下: 'use strict'; //main方法 exports.main = async (event, context) => { console.log(event); //传入的参数 ...
  • 什么是云原生数据库

    千次阅读 多人点赞 2021-07-07 10:35:10
    原生数据库即「Cloud-Native Database Systems」。 在传统数据库的系统架构下,必须是紧耦合的设计方式,才能最大效能地发挥系统的优势。传统扩容过程非常漫长,而业务高峰过后缩容也很痛苦,往往会造成极大的资源...
  • 阿里RDS数据库恢复到本地自建数据库,网上很多都是无法恢复的,此文档是本人经常一个上午的恢复总结写出来的。只要按步骤执行,保证可用。
  • 1.什么是负载均衡? 负载均衡(Load Balance),意思是将负载(工作任务,访问请求等)进行平衡、分摊到多个操作单元(集群,组件)上进行执行。也可以看看什么是负载均衡? 如果不采用负载均衡,执行器发送SQL,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 353,953
精华内容 141,581
关键字:

云数据库是什么