检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
段上查询会返回较大的结果集。尽量避免返回较大的结果集。 对集合的写操作同时会操作集合上的索引,从而触发更多的IO操作,集合上的索引数量不要超过32。 不要创建不会被使用到的索引,因为DDS会加载索引到内存,无用索引加载到内存会浪费内存空间因业务逻辑变化而产生的无用索引也要及时清理。
段上查询会返回较大的结果集。尽量避免返回较大的结果集。 对集合的写操作同时会操作集合上的索引,从而触发更多的IO操作,集合上的索引数量不要超过32。 不要创建不会被使用到的索引,因为DDS会加载索引到内存,无用索引加载到内存会浪费内存空间因业务逻辑变化而产生的无用索引也要及时清理。
文档数据库服务与其他云服务的关系 文档数据库服务与其他服务之间的关系,具体如下图所示。 图1 文档数据库服务与其他服务之间的关系 表1 与其他服务的关系 相关服务 交互功能 弹性云服务器(ECS) 弹性云服务器为文档数据库服务提供可弹性申请的计算资源,为数据库实例提供运行环境。 虚拟私有云(VPC)
在相同业务场景下,架构设计和库、集合、索引等设计会影响查询性能,良好的设计可以提高查询性能,反之会出现很多慢请求(执行时间很长的语句),这些慢请求会消耗很多的系统性能。 本文主要介绍导致慢请求的原因和解决方案。 排查思路 DDS支持在控制台上查看慢日志信息,针对慢日志中过长的操作需要从执行最慢的操作入手,逐个进行优化。
注意事项 查询的结果,返回的是一个Currsor。Cursor使用完毕后要及时关闭,否则会产生内存堆积。 根据查询条件创建必要的索引,索引设计请参见索引设计规范。 避免COLLSCAN全表扫描。 查询条件和索引字段匹配有顺序性。 对于集群实例,根据业务对表进行合理地分片,分片设计请参见分片设计规范。
数据库使用规范 基础命令规范 开发规范 设计规范
如果查询结果需要排序,尽量控制结果集的数量。 涉及多个字段的索引时,尽量将用于精确匹配的字段放在索引的前面。 如果查询条件中的键值顺序和复合索引中的创建顺序不一致,DDS会自动优化为查询跟索引顺序一致。 修改操作 通过操作符对文档进行修改,通常可以获得更好的性能。该方式不需要往返服务器来
更多信息,请参见MongoDB官方文档。 注意事项 操作符$where和$exists中不能使用索引。 如果查询结果需要排序,尽量控制结果集的数量。 涉及多个字段的索引时,尽量将用于精确匹配的字段放在索引的前面。 如果查询条件中的键值顺序和复合索引中的创建顺序不一致,DDS会自动优化为查询跟索引顺序一致。 修改操作
Eye上查看一段时间内的监控指标,以及设置阈值告警。 自行编写监控脚本和告警脚本,保存监控数据和绘制图表。 主机托管 无主机托管费用,即买即用。 自行购买3台服务器设备,托管费用昂贵。 维护成本 无额外运维成本,支持秒级性能监控和设置阈值告警、事件告警。 需要投入大量人力成本,招聘专业的DBA进行维护。
服务快速入门》各实例类型下,通过内网和公网连接实例的内容。 操作步骤 创建数据库。 use dbname “dbname”是待创建数据库的名称。 图1 创建数据库 创建后必须向数据库中插入数据,才能在数据库的列表中看到新创建的数据库。 图2 插入数据 系统自带三个数据库:admi
恢复副本集库表到指定时间点 监控与审计 文档数据库服务支持的监控指标 设置告警规则 支持审计的关键操作列表 查看追踪事件 06 API 您可以使用DDS提供的API对DDS实例进行相关操作,如创建实例、删除实例、查询实例列表等。 API文档 创建实例 删除实例 查询实例列表 创建手动备份
如果在某段时间内(如5min),CPU的利用率出现多次(如3次)不低于某特定值(如90%)的情况,则发出相应云监控告警。 如果在某段时间内(如5min),内存的利用率出现多次(如4次)不低于某特定值(如90%)的情况,则发出相应云监控告警。 如果在某段时间内(如5min),磁盘的使用率出现多次(如5次)不低于
DDS支持利用索引实现高效查询。如果没有索引,DDS必须执行集合扫描,即扫描集合中的每个文档,以选择那些与查询语句匹配的文档。如果一个查询存在适当的索引,DDS可以使用该索引来限制它必须检查的文档数量。 创建索引的规范及建议请参见索引设计规范。 写入/更新和删除命令的规范请参见写入/更新命令和删除命令。 索引分类
什么是DDS实例的只读状态? 为保护DDS实例的正常运行,在存储空间即将被写满的时候,数据库会被设置成磁盘满只读状态,该状态下只支持数据的读取,不支持写入和更新,可以通过扩容存储空间来解除该状态,重新获得写入和更新的能力。 具体规则如下: 用户购买的存储空间超过600GB,当剩余的可用存储
文档数据库实例采用多路由+多分片+副本集的部署形态,当路由主机出现故障时,可实时动态切换。副本集包含多个副本,当主节点发生故障时,系统会在30秒之内切换到备节点。 实例的弹性云服务器,对用户都不可见,这意味着,只允许用户应用程序访问数据库对应的IP地址和端口。 文档数据库服务使用的对象存储服务上的文件(备份文
取值范围:长度为1~64位,可以包含大写字母(A~Z)、小写字母(a~z)、数字(0~9)、中划线、下划线和点。 roles Array of objects 否 新建角色所继承的角色列表。请参见表3。 db_name String 否 角色所在的数据库名称,默认admin。 取值范围:长度为1~64位,可以
索引不是越多越好,过多索引会影响写入和更新的性能。越建议参考ESR原则设计索引,以提高查询效率: 精确(Equal)匹配的字段放最前面。 排序(Sort)条件放中间。 范围(Range)匹配的字段放最后面。 检查游标 游标不规范的使用很容易造成内存升高并且长期不释放的情况,当客户端使用数据库的游标功能时,一定注意主动释放游标(游标的官方说明)。
PASSWORD是实例进行备份时,数据库账号对应的密码。 副本集模式启动数据库 DDS实例的物理备份默认带有原实例的副本集配置。启动时需以单节点模式启动,否则可能无法访问。 如需以副本集模式启动,请先执行5,再执行以下步骤: 通过服务器的mongo shell登录恢复后的数据库。 移除原有副本集配置。
连接数据库 文档数据库服务常用的连接方式如下表。 表1 连接方式 连接方式 IP地址 使用场景 说明 内网连接(推荐) 内网IP地址 系统默认提供内网IP地址。 当应用部署在弹性云服务器上,且该弹性云服务器与文档数据库实例处于同一区域、可用区、虚拟私有云子网内,建议单独使用内网IP通过弹性云服务器连接文档数据库实例。
Python示例 本章节主要介绍使用Python语言连接单节点实例的方法。 前提条件 连接数据库的弹性云服务器必须和DDS实例之间网络互通,可以使用curl命令连接DDS实例服务端的IP和端口号,测试网络连通性。 curl ip:port 返回“It looks like you