什么样的数据库才是开发者需要的
- 什么是Serverless数据库
- Serverless数据库应该关注哪些技术要点
- DBA的工作会被AI取代吗
- 什么样的数据库是你目前最需要的
其实关于数据库的话题,能聊的很多,作为开发者来说,单说自己接触过的或者曾经用过的数据库就有不少,比如说关系型数据库:Mysql数据库、Oracle数据库、SQL Server数据库、DB2数据库、DM数据库;以及一些自己知道但是还未曾用过的关系型数据库:PostgreSQL数据库、OceanBase数据库等等。当然还有业务中常出现的非关系型数据库:Redis数据库、Memcached数据库、MongoDB数据库、Elasticsearch等。以及现在出现的云数据库、云原生数据库等。比如阿里云现有的数据库云产品系列,
那么什么样的数据库才是开发者需要的呢?或者说什么样的数据库才是开发者更喜欢用的数据库?下面来简单的聊一下,在聊之前,先来说一个Serverless数据库。
什么是Serverless数据库
那么什么是Serverless数据库?简单理解就是:Serverless数据库能够使得数据库集群资源随客户业务负载动态弹性扩缩,将客户从复杂的业务资源评估和运维工作中解放出来。怎么体现呢?我们来看一下在业务波动较大的场景下,普通集群和Serverless集群资源使用和规格变化情况
从这幅图基本就可以看出来Serverless数据库的优点了:就是不管业务如何波动,Serverless数据库都不会出现资源不足的情况,同时也不会出现浪费资源的情况,深刻的体现了什么叫做【弹性】。
Serverless数据库应该关注哪些技术要点
在说到Serverless数据库要关注的技术要点之前,我们可以来看一下云原生数据库PolarDB MySQL版Serverless数据库的优势,那么自然也就知晓作为Serverless数据应该关注的技术要点
**高可用:**集群数据库的通用优势就是多节点的架构保障了Serverless集群的高可用;
**高弹性:**是业内自动扩缩范围最广的云数据库,支持自动横向扩展,单集群支持0~1000核范围内的无感扩缩;
**秒级扩缩:**当业务负载突增,5秒完成探测,1秒完成扩展;同时在业务负载下降时,集群资源阶梯性自动释放;
**数据强一致:**支持高性能模式的全局一致性,在集群内实现数据强一致,数据写入后在只读节点上立即可读,性能与弱一致性基本一致;
**低成本:**以计算能力(PCU)定价,真正做到按量付费,帮助客户节省成本,成本下降最高可达80%;
**免运维:**扩缩版本升级、系统部署、扩缩容、报警处理等所有运维工作由阿里云专业团队完成,用户无感知,业务无影响,服务持续可用,真正免运维。
这么看来,是不是感觉Serverless数据特别好,拓展性强,数据安全有保证,弹性秒级扩缩,业务无感,节省成本的同时免运维。其实PolarDB MySQL版Serverless也正是在奔着这些技术要点去逐个攻克,这才有了这么弹性高可用的高性价比云原生数据库。
DBA的工作会被AI取代吗
其实这个问题我也想过,也曾经问过,例如:DBA会被AI取代吗?程序员会被AI取代吗?单说现在AI发展的程度来看,DBA的工作不太会完全被AI取代。AI的发展确实可以自动化处理一些重复性任务,比如:监控性能指标、执行预定义的优化操作、预测并预防硬件故障等,也可以辅助进行复杂的查询语句编写、数据库性能优化、SQL查询优化、数据分析和一部分的安全威胁检测,但是并不能完全取代DBA的工作。
DBA的核心作用,或者说核心工作是保证数据库的稳定运行,保证业务的稳定运行。那么为了达到这一目的,那就需要DBA设计好数据架构、集群架构、备份方案、以及监控、告警、容灾方案等,这些还是需要有一定的业务经验积累才能做到的。而AI所能做到的只是在各个方面提供一定的辅助作用,涵盖SQL调优,数据库性能优化以及数据分析这些可以通过AI运算来实现的优化,因此DBA的工作并不会被AI取代,而AI可以在一些工作方面为DBA的工作提供有力的辅助作用
什么样的数据库是你目前最需要的
作为开发者,不管是使用开源数据库还是使用云数据库、云原生数据库,最终都是要回归数据库本身的作用,存储数据、查询数据。那么对于开发者或者说对于我目前来说,最需要的当然是一款在操作习惯上和现在使用的开源Mysql数据库没有差异,而性能上却要高过开源Mysql很多,并且不用维护,只需要用就可以了,开发者只要专心业务实现就可以,而不用去考虑这样操作数据库性能是否可以跟上。
总结起来说的话,作为开发者的我想要这样一款数据库:
首先数据库性能要很高,不管什么样的sql都可以像主键查询那样快,同样不管这个表存储几百万、几千万、上亿数据,查询效率仍然可以毫秒级返回数据;
其次就是数据库的稳定性要好,不管什么样的业务波动,都可以平稳运行,准确提供查询数据,数据库服务本身是横向扩展或者纵向扩展,开发者并不关注,开发者只关注当前的数据库能不能以最少得时间返回其想要的数据;
然后就是数据的一致性,对于集群数据库来说,数据的一致性总是不太好保证,那么不管何时何种业务波动情况下,保证返回的数据准确无误也是极重要的;
最后就是这款数据库的性价比要高,不能为了用的舒服而不去考虑成本因素,运维要智能化,尽可能的让开发者少去关注数据库的事,而把主要时间放在业务上。