检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
如何通过SQL优化来提升DDS性能 文档数据库属于NoSQL数据库,提供了可扩展的高性能数据解决方案,与关系型数据库(例如MySQL、SQLServer、Oracle)一样,在数据库设计、语句优化、索引创建等方面都会影响数据库的使用性能。 下面从不同维度,给出提升DDS使用性能的建议:
成本优化 在您通过成本中心了解和分析您的成本情况后,您可以确定成本偏高的原因,然后采取针对性的优化措施。 资源优化 您可以通过云监控服务监控资源的使用情况,识别空闲资源,寻找节约成本的机会。也可以根据成本分析阶段的分析结果识别成本偏高的资源,然后采取针对性的优化措施。 通过CES
“rxkB/s”为每秒接收的kB数。 “txkB/s”为每秒发送的kB数。 检查完后,按“Ctrl+Z”键退出查看。 对于网络过高的情况,建议对MQL语句进行分析,优化思路,降低带宽消耗,提升规格扩大网络吞吐能力。 建议排查业务是否存在分片集合的情况消息中未携带ShardKey的情况,此场景下请求消息会进行广播,增加带宽消耗。
参数调优 数据库读写性能提升 实例CPU使用率高问题排查 磁盘使用率高问题排查 内存使用率高问题排查 集群实例负载不均衡问题排查 慢请求定位方法 优化数据库语句方法 通过设置数据分片提升性能
优化数据库语句方法 文档数据库属于NoSQL数据库,提供了可扩展的高性能数据解决方案,与关系型数据库(例如MySQL、SQLServer、Oracle)一样,在数据库设计、语句优化、索引创建等方面都会影响数据库的使用性能。 下面从不同维度,给出提升DDS使用性能的建议。 数据库和集合的创建
g和shard均采用三副本架构,保证高可用。 图1 集群架构 dds mongos为单节点配置,用户可以通过多个dds mongos实现负载均衡及故障转移,单个集群实例可支持2~32个dds mongos节点。 shard节点是分片服务器,当前架构是三节点副本集。单个集群版实例可支持2~32个shard节点。
本文主要介绍导致慢请求的原因和解决方案。 排查思路 DDS支持在控制台上查看慢日志信息,针对慢日志中过长的操作需要从执行最慢的操作入手,逐个进行优化。 对于操作执行时长超过1s时,对应的操作可能会有问题,需要视具体情况分析。 对于操作执行时长超过10s时,则需要优化对应的操作。 若存在某个聚合操
'mongo --help' for more information. 可能原因 使用的客户端和服务端的版本不一致。 输入的命令格式不正确。 排查思路 检查使用的客户端和服务端的版本是否一致。 检查输入的命令格式是否有错误。 处理方法 使用的客户端和服务端的版本保持一致。 使用的URL命
成本分析 企业只有了解组织中哪些方面产生了成本,才能正确地控制和优化成本。成本中心支持使用“成本分析”的汇总和过滤机制可视化企业的原始成本和摊销成本,从而通过各种角度、范围分析成本和用量的趋势及驱动因素。 企业还可以通过成本中心的“成本监控”,及时发现计划外费用,做到成本的可监控、可分析和可追溯。
结果中进行排序。由于排序将占用大量CPU资源,该场景下,需要通过对经常排序的字段建立索引进行优化。 当您在“system.profile”集合中发现SORT关键字时,可以考虑通过索引来优化排序。 其他操作如建立索引、Aggregation(遍历、查询、更新、排序等动作的组合) 也
运维成本:使用DDS过程中产生的人力成本。 图1 DDS成本 华为云成本中心可以帮助您更高效地管理资源成本,但运维成本需要您自行识别、管理和优化。 父主题: 成本管理
结果中进行排序。由于排序将占用大量CPU资源,该场景下,需要通过对经常排序的字段建立索引进行优化。 当您在“system.profile”集合中发现SORT关键字时,可以考虑通过索引来优化排序。 其他操作如建立索引、Aggregation(遍历、查询、更新、排序等动作的组合)也可
应用端连接池的配置错误导致连接数激增,达到了DDS实例可支持的最大连接数。 排查思路 检查是否存在异常的慢查询占用实例资源。 检查应用端连接池的配置是否存在错误。 处理方法 检查是否存在慢查询,建议添加索引进行优化。 检查客户业务端是否正确地使用了连接池。 调整DDS实例可支持的最大的连接数。
@(connect):1:6 exception: connect failed 可能原因 未设置正确的安全组策略,导致从安全组外访问安全组内的DDS实例失败。 排查思路 检查待访问的DDS实例是否设置了正确的安全组策略。只有设置了正确的安全组策略后,从安全组外才可以访问安全组内的DDS实例。 处理方法 请
查询命令 需要通过分析执行过程(查询计划)进行检查并优化,以避免慢查询。 db.collection.find().explain() 请参见性能相关,更多详细内容请参见官方文档。 注意事项 查询的结果,返回的是一个Currsor。Cursor使用完毕后要及时关闭,否则会产生内存堆积。
g.slowOpThresholdMs”(默认是500ms)的语句,您可以通过慢日志的日志明细、统计分析情况,查找出执行效率低的语句,进行优化。您也可以下载慢日志进行业务分析。 使用须知 对于社区版实例,支持通过界面查看和导出日志明细、开启慢日志明文显示、以及下载日志文件的功能。
通过索引实现,将在查询结果中进行排序。由于排序将占用大量内存资源,该场景下,需要通过对经常排序的字段建立索引进行优化。 当您发现SORT关键字时,可以考虑通过索引来优化排序。 索引不是越多越好,过多索引会影响写入和更新的性能。越建议参考ESR原则设计索引,以提高查询效率: 精确(Equal)匹配的字段放最前面。
} 在getmore命令中,通过指定find命令的readAt : s1,表示从s1这个快照中读取数据,指定filter: {a: {$lte: 2}},表示过滤所有满足a<=2的文档。如上所示,在s1快照创建之后,我们更新 {a:1, c:1}->{a:1, c:3}的这个操作是不会影响快照数据的。
处理能力,应用程序无需做任何修改。 集群只读节点不参与投票选举主节点,不会被选举为主节点。 适合需要从现有实例中大量读取数据,需要读请求负载均衡、只读节点高可用的业务场景。 功能限制 目前仅副本集实例3.4、4.0、4.2、4.4及5.0版本和集群实例3.4版本支持挂载只读节点。
ServerSelectionTimeoutError: connection closed, connection closed 处理思路 请及时排查业务侧连接是否有效,优化实例连接,释放不必要的连接。 排查“net.maxIncomingConnections”参数的值及实例规格,修改参数值或对数据库进行规格扩容。