检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
单字段索引 除DDS定义的_id索引外,DDS还支持在文档的单个字段上创建用户定义的升序/降序索引。 对于单字段索引和排序操作,索引键的排序顺序(升序或降序)并不重要,因为DDS可以从任何方向遍历索引。 复合索引 DDS还支持多个字段上的用户定义索引,即复合索引。 复合索引中列出
对于包含多个键的查询,建议创建包含这些键的复合索引。复合索引的键值顺序很关键,需遵循索引最左前缀原则,查询应包含最左索引字段,以索引创建顺序为准,与查询字段顺序无关。 给索引添加TTL属性,自动筛选过期文档并删除。创建TTL的索引必须是日期类型。TTL索引是单字段索引,而非复合索引。 需要在
DDS是否支持TTL索引清理过期数据 DDS支持TTL索引清理过期数据。详情请参考官方指南。 父主题: 数据库基本使用
根据业务需求,对经常查询的数据字段创建适当的索引。需注意,索引会占用一些空间,并且插入操作和索引更新会消耗资源。因此,建议每个集合的索引数量不超过5个。 案例:出现数据查询缓慢,如果没有创建索引,建议对经常查询的数据字段创建适当的索引,优化查询速度。 对于包含多个键的查询,建议创建包含这些键的复合索引。复合索引的键值
扩容集群实例的节点数量 接口说明 扩容指定集群实例的节点数量。 约束说明 该接口既支持包年包月实例,也支持按需实例。 仅支持扩容社区版集群实例的mongos节点和shard节点。 调试 您可以在API Explorer中调试该接口。 URI URI格式 POST https://
文档数据库中创建失败的索引可以删除吗 使用语句db.<collection>.stats(),查询文档数据库中有哪些索引,然后对创建失败的索引进行删除。 collection请根据需要进行填写。 父主题: 数据库基本使用
索引数量不要超过32。 不要创建不会被使用到的索引,因为DDS会加载索引到内存,无用索引加载到内存会浪费内存空间因业务逻辑变化而产生的无用索引也要及时清理。 索引创建必须使用后台创建索引,禁止前台创建索引。 业务中查询,排序条件的key一定要创建索引,如果建立的是复合索引,索引的
DDS使用规范建议 设计规范 开发规范
加载索引到内存,无用索引加载到内存会浪费内存空间因业务逻辑变化而产生的无用索引也要及时清理。 索引创建必须使用后台创建索引,禁止前台创建索引。 业务中查询,排序条件的key一定要创建索引,如果建立的是复合索引,索引的字段顺序要和这些关键字后面的字段顺序一致,否则索引不会被使用。
通过命令创建数据库账户 创建文档数据库实例时,系统会同步创建默认账户rwuser。您可以根据业务需要,通过默认账户rwuser创建其他数据库账户,之后您可以使用默认账户rwuser或已创建的其他账户对数据库中的数据如库、表、索引等进行操作。 使用须知 为目标实例创建数据库账户时,建议您开启SSL通道,提高数据的安全性。
控制并发连接数。连接数据库时,需要计算业务一共有多少个客户端, 每个客户端配置的连接池大小是多少,总的连接数不宜超过当前实例能承受的最大连接数的80%。连接太多会导致内存和多线程上下文的开销增加,影响请求处理延时。 建议配置连接池,连接池最大不要超过200。 降低单次请求的内存开销,例如通过创建索引减少集合的扫描、内存排序等。
使用文档数据库服务时,如果您的CPU使用率达到80%,则认为CPU存在瓶颈。此时,会导致数据读写处理缓慢,从而影响业务正常运行。 本章节帮助您分析数据库正在执行的请求和数据库慢请求,经过分析优化后,使得数据库的查询相对合理,所有的请求都高效使用了索引,从而排查文档数据库服务CPU使用率高的问题。
根据_id进行查询 TEXT 全文索引 COUNTSCAN 未用索引计数 FETCH 索引扫描 LIMIT 使用Limit限制返回数 SUBPLA 未用索引的$or查询阶段 PROJECTION 限定返回字段时stage的返回 COUNT_SCAN 使用索引计数 Cursor使用规则
规格增加承载的连接数的数量,具体请参见变更实例规格。 如果实例参数模板为默认参数模板,由于默认参数模板中不允许修改参数值,您可以创建一个参数模板,并修改对应参数值,修改后将新参数模板关联到该实例。 检查是否有慢查询,建议添加索引进行优化。 父主题: 数据库连接
"OperationFailed" } : 解决方法 在索引操作之前处理游标: 确保在 hideIndex 或 dropIndex 之前使用完游标。 重新获取游标: 如果索引发生变化,重新执行查询以获取新的游标。 提前计划: 避免在长时间查询中执行索引操作。 示例代码: (function()
查询的结果,返回的是一个Currsor。Cursor使用完毕后要及时关闭,否则会产生内存堆积。 根据查询条件创建必要的索引,索引设计请参见索引设计规范。 避免COLLSCAN全表扫描。 查询条件和索引字段匹配有顺序性。 对于集群实例,根据业务对表进行合理地分片,分片设计请参见分片设计规范。 对于分片
则执行update。如果业务上场景可以进行相关记录,则避免使用upsert命令,建议直接使用update或insert。 update也需要匹配索引。 避免COLLSCAN全表扫描。 查询条件和索引字段匹配有顺序性。 insert/update命令中涉及的文档,最大不能超过16MB。
内存开销也会上涨。 客户端连接数据库的时候,要计算业务一共有多少个客户端,每个客户端配置的连接池大小是多少,总的连接数不要超过当前实例能承受的最大连接数的80%。 客户端与数据库的连接应尽量保持相对稳定的状态,每秒新增连接数建议保持在10以下。 建议客户端的连接超时时间至少设置为最大业务执行时长的3倍。
避免多个DDL操作同时执行,可能会引起阻塞导致执行失败。例如:创建索引和删除集合不要同时执行。 创建索引时,只创建必要的索引,避免创建多余索引导致存储空间浪费。例如:不要基于复合索引的前缀字段再创建索引。 创建索引时,需要创建后台索引,即:db.<collection_name>.createIndex({
检查应用端连接池的配置是否存在错误。 处理方法 检查是否存在慢查询,建议添加索引进行优化。 检查客户业务端是否正确地使用了连接池。 调整DDS实例可支持的最大的连接数。 背景知识 根据购买的文档数据库实例规格不同,最大连接数也不同,当连接的客户端数量达到实例的最大连接数时,会拒绝新的客户端的请求连接。