检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 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时把匹配最多结果的条件放在最前面。 单个实例中,数据
profile.find().pretty() 分析慢请求日志,查找CPU使用率升高的原因。 下面是某个慢请求日志示例,可查看到该请求进行了全表扫描,扫描了1561632个文档,没有通过索引进行查询。 { "op" : "query", "ns" : "taiyiDatabase
profile.find().pretty() 分析慢请求日志,查找CPU使用率升高的原因。 下面是某个慢请求日志示例,可查看到该请求进行了全表扫描,扫描了1561632个文档,没有通过索引进行查询。 { "op" : "query", "ns" : "taiyiDatabase
本地MongoDB迁移到DDS 数据复制服务(Data Replication Service,简称DRS)支持将本地MongoDB数据库的数据迁移至本云文档数据库服务(Document Database Service,以下简称DDS)实例。通过DRS提供的实时迁移任务,实现在
$nin 可能会匹配到大多数的索引,此时,查询优化器会退化为全表扫描。 $not 可能会导致查询优化器无法匹配到具体的索引,退化为全表扫描。 $ne 选择字段值不等于指定值的文档,如果多数为取相反值的文档,将会扫描整个索引。 $exists 对于松散的文档结构,查询必须遍历每一个文档。
$nin:可能会匹配到大多数的索引,此时,查询优化器会退化为全表扫描。 $not:可能会导致查询优化器无法匹配到具体的索引,退化为全表扫描。 $ne:选择字段值不等于指定值的文档,如果多数为取相反值的文档,将会扫描整个索引。 $exists:对于松散的文档结构,查询必须遍历每一个文档。
示的所有日志导出。 如果您需要根据某个字段排序查看慢日志,比如执行完成时间、SQL语句、客户端、用户、执行耗时、锁等待耗时、扫描文档数据、返回文档数、扫描索引数等,请参见数据管理服务(Data Admin Service,简称DAS)用户指南中的“慢SQL”章节。 慢日志内容可能
Cursor使用完毕后要及时关闭,否则会产生内存堆积。 根据查询条件创建必要的索引,索引设计请参见索引设计规范。 避免COLLSCAN全表扫描。 查询条件和索引字段匹配有顺序性。 对于集群实例,根据业务对表进行合理地分片,分片设计请参见分片设计规范。 对于分片表,查询条件要基于s
进行相关记录,则避免使用upsert命令,建议直接使用update或insert。 update也需要匹配索引。 避免COLLSCAN全表扫描。 查询条件和索引字段匹配有顺序性。 insert/update命令中涉及的文档,最大不能超过16MB。 父主题: 基础命令规范
业务场景 RocksDB的表现差异 优化建议 示例 多文档扫描 RocksDB在文档扫描(docsExamined)多的业务场景下对CPU、IO等资源消耗相较于WiredTiger更多。 建议通过添加适当的索引进行优化,提高扫描效率,降低CPU、IO等资源的消耗。 例如,在coll表
多线程上下文的开销增加,影响请求处理延时。 建议配置连接池,连接池最大不要超过200。 降低单次请求的内存开销,例如通过创建索引减少集合的扫描、内存排序等。 在连接数合适的情况下内存占⽤持续增⾼,建议升级内存配置,避免可能存在内存溢出和大量清除缓存而导致系统性能急剧下降。 集群实
您可以在任务中心取消待执行的定时任务。 可维护时间段不要和备份的时间冲突,否则可能会导致定时任务失败。 临近可维护时间段结束时下发的任务,有可能扫描不到,取消执行。 设置可维护时间段 登录管理控制台。 单击管理控制台左上方的,选择区域和项目。 在页面左上角单击,选择“数据库 > 文档数据库服务
数据库集合名称建议使用字母和下划线组合,不能以system为前缀,<数据库名>.<集合名称> 总长度不超过120字符。 索引设计规范 索引创建,可以避免全表扫描,有效地提高查询命令的执行效率。 索引字段的长度不能超过512字节,索引名称长度不能超过64字符,单个复合索引所包含字段数最多不能超过16个。
数据库集合名称建议使用字母和下划线组合,不能以system为前缀,<数据库名>.<集合名称> 总长度不超过120字符。 索引设计规范 索引创建,可以避免全表扫描,有效地提高查询命令的执行效率。 索引字段的长度不能超过512字节,索引名称长度不能超过64字符,单个复合索引所包含字段数最多不能超过16个。
lock_time String 等待锁时间。 rows_sent String 结果行数量。 rows_examined String 扫描的行数量。 database String 所属数据库。 start_time String 发生时间,UTC时间。 响应示例 { "slow_log_list":