检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
创建和管理索引 DDS支持利用索引实现高效查询。如果没有索引,DDS必须执行集合扫描,即扫描集合中的每个文档,以选择那些与查询语句匹配的文档。如果一个查询存在适当的索引,DDS可以使用该索引来限制它必须检查的文档数量。 创建索引的规范及建议请参见索引设计规范。 写入/更新和删除命
SQL自动查杀 使用场景 Kill掉所有执行时间已经超过n秒的请求。 Kill掉特定客户端IP的请求。 Kill掉所有全表扫描的请求。 使用须知 实例节点的CPU规格数量在4U及其以上。 支持3.4及以上版本的副本集实例和集群实例。 单个实例最多创建10条规则。 32 shard
这样会造成查询扫描的记录过多,建议先基于索引字段查询,过滤出较小的数据集后再使用模糊查询。 避免使用$not。MongoDB 并不会对缺失的数据进行索引,因此$not的查询条件将会要求在一个结果集中扫描所有记录。如果$not是唯一的查询条件,会对集合进行全表扫描。 用$and时
除了降低连接数以外,还需要注意单次请求的内存开销,尽量避免查询语句出现全表扫描、内存排序等。 使用慢日志功能,查询当前实例产生的慢日志。 分析慢日志,查找内存升高的原因:下面是某个慢请求日志示例,可查看到该请求进行了全表扫描,扫描了1561632个文档,没有通过索引进行查询。 {
全部修改。 避免使用$not。DDS并不会对缺失的数据进行索引,因此$not的查询条件将会要求在一个结果集中扫描所有记录。如果$not是唯一的查询条件,会对集合执行全表扫描。 用$and时把匹配最少结果的条件放在最前面,用$or时把匹配最多结果的条件放在最前面。 单个实例中,数据
全部修改。 避免使用$not。DDS并不会对缺失的数据进行索引,因此$not的查询条件将会要求在一个结果集中扫描所有记录。如果$not是唯一的查询条件,会对集合执行全表扫描。 用$and时把匹配最少结果的条件放在最前面,用$or时把匹配最多结果的条件放在最前面。 单个实例中,数据
示的所有日志导出。 如果您需要根据某个字段排序查看慢日志,比如执行完成时间、SQL语句、客户端、用户、执行耗时、锁等待耗时、扫描文档数据、返回文档数、扫描索引数等,请参见数据管理服务(Data Admin Service,简称DAS)用户指南中的“慢SQL”章节。 慢日志内容可能
profile.find().pretty() 分析慢请求日志,查找CPU使用率升高的原因。 下面是某个慢请求日志示例,可查看到该请求进行了全表扫描,扫描了1561632个文档,没有通过索引进行查询。 { "op" : "query", "ns" : "taiyiDatabase
profile.find().pretty() 分析慢请求日志,查找CPU使用率升高的原因。 下面是某个慢请求日志示例,可查看到该请求进行了全表扫描,扫描了1561632个文档,没有通过索引进行查询。 { "op" : "query", "ns" : "taiyiDatabase
多线程上下文的开销增加,影响请求处理延时。 建议配置连接池,连接池最大不要超过200。 降低单次请求的内存开销,例如通过创建索引减少集合的扫描、内存排序等。 在连接数合适的情况下内存占⽤持续增⾼,建议升级内存配置,避免可能存在内存溢出和大量清除缓存而导致系统性能急剧下降。 集群实
$nin 可能会匹配到大多数的索引,此时,查询优化器会退化为全表扫描。 $not 可能会导致查询优化器无法匹配到具体的索引,退化为全表扫描。 $ne 选择字段值不等于指定值的文档,如果多数为取相反值的文档,将会扫描整个索引。 $exists 对于松散的文档结构,查询必须遍历每一个文档。
$nin:可能会匹配到大多数的索引,此时,查询优化器会退化为全表扫描。 $not:可能会导致查询优化器无法匹配到具体的索引,退化为全表扫描。 $ne:选择字段值不等于指定值的文档,如果多数为取相反值的文档,将会扫描整个索引。 $exists:对于松散的文档结构,查询必须遍历每一个文档。
Cursor使用完毕后要及时关闭,否则会产生内存堆积。 根据查询条件创建必要的索引,索引设计请参见索引设计规范。 避免COLLSCAN全表扫描。 查询条件和索引字段匹配有顺序性。 对于集群实例,根据业务对表进行合理地分片,分片设计请参见分片设计规范。 对于分片表,查询条件要基于s
进行相关记录,则避免使用upsert命令,建议直接使用update或insert。 update也需要匹配索引。 避免COLLSCAN全表扫描。 查询条件和索引字段匹配有顺序性。 insert/update命令中涉及的文档,最大不能超过16MB。 父主题: 基础命令规范
您可以在任务中心取消待执行的定时任务。 可维护时间段不要和备份的时间冲突,否则可能会导致定时任务失败。 临近可维护时间段结束时下发的任务,有可能扫描不到,取消执行。 设置可维护时间段 登录管理控制台。 单击管理控制台左上方的,选择区域和项目。 在页面左上角单击,选择“数据库 > 文档数据库服务
业务场景 RocksDB的表现差异 优化建议 示例 多文档扫描 RocksDB在文档扫描(docsExamined)多的业务场景下对CPU、IO等资源消耗相较于WiredTiger更多。 建议通过添加适当的索引进行优化,提高扫描效率,降低CPU、IO等资源的消耗。 例如,在coll表
数据库集合名称建议使用字母和下划线组合,不能以system为前缀,<数据库名>.<集合名称> 总长度不超过120字符。 索引设计规范 索引创建,可以避免全表扫描,有效地提高查询命令的执行效率。 索引字段的长度不能超过512字节,索引名称长度不能超过64字符,单个复合索引所包含字段数最多不能超过16个。
数据库集合名称建议使用字母和下划线组合,不能以system为前缀,<数据库名>.<集合名称> 总长度不超过120字符。 索引设计规范 索引创建,可以避免全表扫描,有效地提高查询命令的执行效率。 索引字段的长度不能超过512字节,索引名称长度不能超过64字符,单个复合索引所包含字段数最多不能超过16个。
通过设置数据分片提升性能 对于DDS集群实例,如果某个集合的存储量很高,建议对该集合设置数据分片。分片是将数据按照某种方式拆分,将其分散存放在不同的机器上,以充分利用各分片节点的存储空间和计算性能。 设置数据分片 下面以数据库mytable,集合mycoll,字段“name”为分片键举例说明。
如何规避dds mongos路由缓存缺陷 背景信息 DDS作为基于分布式文件存储的数据库,以其可扩展性,高性能,开源,模式自由,面向文档等特点,逐步赢得了越来越多的使用者。下图为DDS集群架构示意图: 图1 集群架构图 集群架构主要分为以下三部分: dds mongos:为单节点