云服务即开即用,免运维
数据库虽然是基础软件,但是它的搭建也需要一系列基础服务作为支撑。客户在购买云上ECS后,通常需要自行选择合适的数据库版本,按照当前的ECS规格修改合适的配置参数,实现基本的高可用能力。在完成上述工作后,还需要搭建监控系统保障基础运维。相比之下,使用云数据库的客户完全不用担心上述复杂的工作,可专心聚焦于自身业务的实现和优化,如下图所示:
特别是在批量、频繁创建和删除环境时,上述的手动操作会特别繁琐、耗时且容易出错。数据库创建完成后,后续的运维也是极具考验经验的工作,如果面对不熟悉的数据库,一个简单的问题就可能会阻塞开发、测试,最终可能影响项目的整体进度。
反观云数据库的操作就非常简单、方便。只要在页面上简单点击选择就可以购买创建,选择相应的存储大小、填写密码即可,极大提升了操作效率。最主要的是,在遇到问题时云数据库背后有经验丰富的运维团队来保障,常见问题可以达到分钟级恢复。
除了在使用和部署上的便捷之外,云数据库内核针对不合理的业务使用做了很多规范限制,使得客户在业务开发、测试阶段就可以发现问题,并及时优化和调整,保障正式业务的稳定。
限制不合理查询
GaussDB(for Influx)在数据库内核层面做了很多规范和限制,对于不合理的使用不允许执行,并给出优化建议,遵循这些规范可有效提升业务运行的稳定性。
禁止不带时间范围的查询执行
时序数据有很强的时间属性,数据库的内部组织也是严格按照时间属性的,这是相对于其他数据库很大的区别。如果不带时间范围的查询,就会导致数据库查询全部数据,大概率会导致数据库发生OOM问题,影响业务稳定性。
禁止执行select * from语句查询
大多数真实业务场景一般需要指定具体的查询字段,只是由于开发习惯等各种原因而使用了select * from进行查询。这种写法有两个潜在的问题:
1. 返回结果可能不确定,GaussDB(for Influx)是schemaless模式的,可以随时添加和减少tag,field,这样随着业务的变化select*返回的结果可能会出现不一致,容易导致业务在解析返回结果时发生异常;
2. select* 返回了所有字段的值,但是实际上有用的只有某几个字段,这样有大量数据传输是无效的,既浪费了网络带宽,又浪费计算、内存等资源。因此在开发规范中我们不建议使用这种方式查询,在内核中也会对这种查询进行拦截。
查看慢日志能力
云服务的慢日志能力,使客户在业务开发阶段就能及时发现慢查询,及时进行优化调整。
限制每条查询涉及的时间线和field数量
如果一条查询涉及的时间线或者field数量太多,说明这个查询可能会查询太多的数据,数据库会把这些数据都加载到内存中,很容易导致OOM,影响业务稳定性。而涉及的太多时间线或者field,大多数场景下是因为我们所写的查询语句不合理导致的,需要进一步优化。
小结:
GaussDB(for Influx)是一款基于计算存储分离架构,兼容InfluxDB生态的云原生时序数据库,此次推出的单机版模式,在保留云数据库优势的同时,做到和自建ECS价格基本持平,满足业务对可用性、可靠性要求不高场景下对低成本的诉求。




