与传统的MySQL服务有什么区别?
区别一:资源依赖
传统是基于宿主机规格来建设MySQL服务,无论最终业务资源使用多少,成本都是整个宿主机或规格资源的成本,如果需要扩缩容则依赖前置的配置或中途人工干预;
MySQL Serverless是按使用资源付费而不是按规格付费,因此对于有明显业务峰谷的应用在成本上有较大的优势;
其次能自动根据使用业务量情况进行扩缩容;简单说就是业务高峰时资源自动扩容支撑突然的业务流量,闲时自动缩容减少成本.成本与资源利用是成正相关,资源计费能精确到秒级;
区别二:运维管理
传统自建或购买实例规格都需要人为的进行基础运维安装,配置调优,维护版本升级等运维工作,MySQL Serverless能自动完成这一系列的运维工作,无须人为干预
区别二:计算与存储
传统MySQL 服务性能除了依赖SQL优化和配置调优外,更多的是受宿主规格限制,计算受CPU算力影响,存储受内存和磁盘的限制,因此往往需要我们在资源规划上进行弹性预留,但往往可能只有在极少数时间这部分资源才会用得上,甚至可能用不上,存在着较大的资源浪费;
MySQL Serverless下计算与资源都是实时自动扩缩容的,无须预留,MySQL Serverless能根据资源使用情况进行自动的扩缩容且不需要额外人工干预;
能给企业和团队带来什么好处?
从
MySQL Serverless与传统MySQL服务的区别中我们再看看它能带来些什么好处
减少运维工作量(通常无须运维)
- 屏蔽了
MySQL的运维和扩缩容复杂度,几乎不用人为干预就能自动扩缩容,配合DAS 还可以实现参数自动调优,SQL的分析和优化;让研发团队更聚焦于业务,而对于中小团队来说运维和调优好数据库本身就具有一定的挑战; - 能极低成本(
资源成本和人力成本)的支持开发过程中的一些人造突发流量
成本控制更精准
由MySQL Serverless的按资源使用计费和自动扩缩资源特性,可以节约原来需要预估预留的资源成本以及人为干预升降配成本;
比如:业务常规时4c8g就可以支撑,高峰时需要8c16g才能支持,传统方式是在高峰期前进行扩容(人工或提前设置好的扩容规则),一旦流量超过了扩容后能支持的最大量时服务依然受影响或则中断,而如果流量达不到预估的峰值,扩容的资源也是浪费掉的.准确与否完全取决于提前对流量的预估准确性;
MySQL Serverless则不是,它完全根据当前负载情况来进行秒级资源扩缩容,因此资源使用上更精准和合理.
哪些场景下适用?
- 开发和测试环境
开发和测试环境,流量和资源的使用都是极低的;但也能在需要是提供更多资源,且不需要人为干预;
- 有明显业务波动的场景
该场景下主要是节约非高峰期的资源成本,且不影响性能和可用性
- 不可预测的业务场景
该种场景下无法准确评估资源使用量,
MySQL Serverless的自动扩缩容来支撑未知的流量,无须预留;
总结
- 成本控制更精准,且不影响性能
- 运维成本更低,甚至无须运维
- 对业务系统无影响,完全透明
疑惑与不足
- 目前内测阶段放出的只支持
MySQL 8.0, 因此对于还在5.x的应用要接入则需要额外的成本 - 目前按照
RCU进行资源计费,1RCU ≈ 1c2g,这与常规的MySQL服务应用场景的配置不一致,且无法调整,比如查询多时会提高内存,写入多时会提高CPU等.