爆款云主机低至25.83元/年
查看详情

活动

天翼云最新优惠活动,涵盖免费试用,产品折扣等,助您降本增效!
热门活动
  • 云聚517 · 好价翼起拼 NEW 爆款云主机低至25.83元/年,参与拼团享更多优惠,拼成得额外优惠券
  • 安全隔离版OpenClaw NEW OpenClaw云服务器专属“龙虾“套餐低至1.5折起
  • 聚力AI赋能 天翼云大模型专项 大模型特惠专区·Token Plan 轻享包低至9.9元起
  • 青云志云端助力计划 NEW 一站式科研助手,海外资源安全访问平台,助力青年翼展宏图,平步青云
  • 企业出海解决方案 NEW 助力您的业务扬帆出海,通达全球!
  • 天翼云信创专区 NEW “一云多芯、一云多态”,国产化软件全面适配,国产操作系统及硬件芯片支持丰富
  • 中小企业服务商合作专区 国家云助力中小企业腾飞,高额上云补贴重磅上线
  • 云上钜惠 爆款云主机全场特惠,2核4G只要1.8折起!
  • 天翼云奖励推广计划 加入成为云推官,推荐新用户注册下单得现金奖励
免费活动
  • 免费试用中心 HOT 多款云产品免费试用,快来开启云上之旅
  • 天翼云用户体验官 NEW 您的洞察,重塑科技边界

息壤智算

领先开放的智算服务平台,提供算力、平台、数据、模型、应用“五位一体”智算服务体系,构建全流程的AI基础设施能力
AI Store
  • 算力市场
  • 模型市场
  • 应用市场
公共算力服务
  • 裸金属
  • 定制裸金属
训推服务
  • 模型开发
  • 训练任务
  • 服务部署
Token服务
  • 模型广场
  • 体验中心
  • 服务接入
应用托管
  • 应用实例
科研助手
  • 科研智能体
  • 科研服务
  • 开发机
  • 并行计算
大模型
  • DeepSeek-V4-Flash
  • GLM-5.1
  • Qwen3.5-122B-A10B
  • DeepSeek-V3.2(旗舰版)
  • GLM-5(正式版)
智算一体机
  • 智算一体机
智能体引擎
  • 智能体引擎
模型适配专家服务
  • 模型适配专家服务
算力服务商
  • 入驻算力服务商

应用商城

天翼云精选行业优秀合作伙伴及千余款商品,提供一站式云上应用服务
进入甄选商城进入云市场进入AI Store创新解决方案公有云生态专区智云上海应用生态专区
建站工具
  • 新域名服务
  • SSL证书
  • 翼建站
企业办公
  • 安全邮箱
  • WPS 365 天翼云版
  • 天翼企业云盘(标准服务版)
灾备迁移
  • 云管家2.0
  • 翼备份(SaaS版)

定价

协助您快速了解云产品计费模式、价格详情,轻松预估上云成本
价格计算器
  • 动态测算产品价格
定价策略
  • 快速了解计费模式

合作伙伴

天翼云携手合作伙伴,共创云上生态,合作共赢
天翼云生态合作中心
  • 天翼云生态合作中心
天翼云渠道合作伙伴
  • 天翼云代理渠道合作伙伴
天翼云服务合作伙伴
  • 天翼云集成商交付能力认证
天翼云应用合作伙伴
  • 天翼云云市场合作伙伴
  • 天翼云甄选商城合作伙伴
天翼云技术合作伙伴
  • 天翼云OpenAPI中心
天翼云培训认证
  • 天翼云学堂
  • 天翼云市场商学院
天翼云合作计划
  • 云汇计划
天翼信创云专区
  • 信创云专区
  • 适配互认证

开发者

开发者相关功能入口汇聚
技术社区
  • 专栏文章
  • 互动问答
  • 技术视频
资源与工具
  • OpenAPI中心
培训与认证
  • 天翼云学堂
  • 天翼云认证
开源社区
  • 魔乐社区
  • OpenTeleDB

支持与服务

为您提供全方位支持与服务,全流程技术保障,助您轻松上云,安全无忧
文档与工具
  • 文档中心
  • 新手上云
  • 自助服务
  • OpenAPI中心
定价
  • 价格计算器
  • 定价策略
基础服务
  • 售前咨询
  • 在线支持
  • 在线支持
  • 工单服务
  • 服务保障
  • 会员中心
增值服务
  • 红心服务
  • 首保服务
  • 客户支持计划
  • 专家技术服务
  • 备案管家
我要反馈
  • 建议与反馈
  • 用户体验官
信息公告
  • 客户公告

了解天翼云

天翼云秉承央企使命,致力于成为数字经济主力军,投身科技强国伟大事业,为用户提供安全、普惠云服务
品牌介绍
  • 关于天翼云
  • 智算云
  • 天翼云4.0
  • 新闻资讯
  • 天翼云APP
基础设施
  • 全球基础设施
  • 信任中心
最佳实践
  • 精选案例
  • 超级探访
  • 云杂志
  • 分析师和白皮书
  • 天翼云·创新直播间
市场活动
  • 2026智能云生态大会
  • 2025智能云生态大会
  • 2024智算云生态大会
  • 2023云生态大会
  • 2022云生态大会
  • 天翼云中国行
天翼云
  • 活动
  • 息壤智算
  • 产品
  • 解决方案
  • 应用商城
  • 定价
  • 合作伙伴
  • 开发者
  • 支持与服务
  • 了解天翼云
      • 文档
      • 控制中心
      • 备案
      • 管理中心
      EasyCoding敏捷开发平台_相关内容
      • 执行Spark任务报内存不足告警如何处理?
        如果发生了数据倾斜 此时倾斜executor不会出现Exception,但是内存heap使用量偏高,会发出内存告警。 这一点可以在web UI的task列表中清晰的看到stage的某一个task相对于其他task,其computing time明显很长。 这种情况下一般是shuffle发生了数据倾斜,首先可以使用map combiner,降低map侧的倾斜的shuffle reduce分区的数据量。 此外,可以通过编程,提取出topk的shuffle reduce 分区的key值,然后将对应shuffle Key的rdd partition打上随机数,做一个均匀分割,然后执行reduceByKey操作,最后去掉随机数,再执行一次reduceByKey。 如果不想这样,可以使用hive。 Heap User Heap User作用 用户自定义数据结构,这个就是用户使用spark core api 或者 spark sql api过程中使用了其他数据结构进行编程,因而产生了一些heap消耗。 Heap User不足 存在heap不足的情况,一般是用户将task的计算结果,RDD.collect 到driver中的数据结构中,这种情况,需要去使用专门的connector,实现分布式计算和读写。 还有就是用户执行sql的时候,会进行非insert 操作,即直接select读取大表,导致driver内存不足够,这种情况下建议使用limit 操作,或者 使用spark的流式返回功能。
        来自:
        帮助文档
        翼MapReduce
        常见问题
        大数据业务开发
        执行Spark任务报内存不足告警如何处理?
      • 如何查看HBase日志?
        本章节主要介绍翼MapReduce组件HBase日志如何查询。 1. 使用root用户登录集群的Master或rs节点。 2. 执行 cd /var/log/Bigdata/hbase/ 命令,进入到“/var/log/Bigdata/hbase/”目录,即可查看HBase日志信息。
        来自:
        帮助文档
        翼MapReduce
        常见问题
        大数据业务开发
        如何查看HBase日志?
      • Kafka目前支持的访问协议类型有哪些?
        本章节主要介绍翼MapReduce组件Kafka支持的协议类型。 Kafka目前支持4种协议类型的访问:PLAINTEXT、SSL、SASLPLAINTEXT、SASLSSL。 PLAINTEXT是最简单的协议,它以明文形式传输数据,不提供任何加密或身份验证机制。 SSL(Secure Sockets Layer) 是一种安全的协议,用于在客户端和服务器之间加密通信。通过使用 SSL,可以确保数据在传输过程中是加密的,从而提高了安全性。SSL协议通常需要在Kafka服务器上配置SSL证书以进行安全通信。 SASLPLAINTEXT (Simple Authentication and Security Layer with Plain Text)使用简单身份验证机制,通常用于在不使用加密的情况下进行用户身份验证,但是用户名和密码以明文形式传输。 SASLSSL (Simple Authentication and Security Layer with SSL)结合了 SSL 和 SASL,提供了更强大的安全性。它通过 SSL 加密通信,并使用 SASL 进行身份验证。这是Kafka中最安全的选项之一,适用于在不同网络环境中进行安全通信。 在Kafka中,选择适当的协议取决于集群的安全需求和网络环境。
        来自:
        帮助文档
        翼MapReduce
        常见问题
        大数据业务开发
        Kafka目前支持的访问协议类型有哪些?
      • Spark job对应的执行日志保存在哪里?
        本章节主要介绍翼MapReduce组件Spark日志保存问题。 Spark job没有完成的任务日志保存在dirver节点的nodemanager 的 containerlogs中。 Spark job完成的任务日志保存在HDFS的/tmp/logs/ 用户名 /logs。
        来自:
        帮助文档
        翼MapReduce
        常见问题
        大数据业务开发
        Spark job对应的执行日志保存在哪里?
      • 如何获取Spark Jar包?
        本章节主要介绍翼MapReduce如何获取Spark Jar包。 1、获取非Spark依赖 从maven中央仓库/华为云仓库等 获取Spark运行所需要的依赖 ,可以从Spark Apache官网获取Spark相关的客户端。 Spark客户端中jars目录包含Spark运行依赖。 Spark 客户端下载地址参考Spark Apache官网。 2、获取Sparkcore等Spark依赖 除了通过Spark Apache官网下载客户端获取和maven中央仓库获取有时也可以通过源码打包以获取。 可根据如下命令进行Spark源码打包: 整体打包命令: ./build/mvn Pyarn Phive Phivethriftserver DskipTests clean package 单模块打包命令: ./build/mvn pl :sparkstreaming2.12 clean install
        来自:
        帮助文档
        翼MapReduce
        常见问题
        大数据业务开发
        如何获取Spark Jar包?
      • Trino如何配置其他数据源?
        本章节主要介绍翼MapReduce组件Trino如何配置数据源。 增加数据源,在Trino安装目录配置对应的catalog文件即可,以MySQL数据源为例: 1. 创建${trinohome}/etc/catalog/mysql.properties。 2. 编辑mysql.properties: connector.namemysql connectionurljdbc:mysql://127.0.0.1:3306 connectionusertest connectionpasswordtest 说明 具体的数据源配置可参考Trino相应官方文档。
        来自:
        帮助文档
        翼MapReduce
        常见问题
        大数据业务开发
        Trino如何配置其他数据源?
      • HBase表如何设置和修改数据保留期?
        本章节主要介绍翼MapReduce组件HBase数据保留期的设置和修改。 保证用户具有表的admin权限和create权限。 创建表时指定,创建ttasklog表,列族f, TTL设置86400秒过期。 create 'ttasklog',{NAME > 'f', TTL>'86400'} 在已有表的基础上指定: alter "ttasklog",NAME>'data',TTL>'86400' 设置TTL值,作用于列族data
        来自:
        帮助文档
        翼MapReduce
        常见问题
        大数据业务开发
        HBase表如何设置和修改数据保留期?
      • 查询窗口介绍
        本文介绍查询窗口界面的相关功能,用户可以在此界面执行SQL查询、编写、调试SQL代码以及查看、编辑、分析查询结果。查询窗口提供了一个集成的环境,支持直接与数据库进行交互并进行数据操作。 前提条件 已将可用的实例添加至组织,添加云数据库详见添加云数据库,添加公网/直连数据库详见添加公网/直连数据库。 已准备好该实例的数据库账号、密码。 注意事项 查询结果分页显示,每个分页默认展示20行数据,单次查询最大返回3000行,暂不支持用户修改该最大行数的默认值。 针对单个实例,最多可同时打开10个查询窗口。 单次查询最大支持1000000个字符的SQL内容。 对于MySQL系、SQL Server系的实例需要选择到库级别进行操作,对于PostgreSQL系的实例需要选择到模式级别进行操作,为了叙述方便,本页面的说明皆以MySQL实例为标准。 操作步骤 1. 登录数据管理服务DMS。 2. 在首页功能简介里点击实例列表按钮 ,打开实例列表。 3. 在实例列表弹窗里,点击展开目标实例,显示库/模式列表。 4. 右键单击目标库或者目标模式后打开悬浮窗,点击查询窗口进入;或双击目标库/模式打开查询窗口。 查询窗口界面介绍 表1 查询窗口界面介绍 序号 区域 说明 ① 团队信息区域 展示当前实例所属的团队名称。 ② 打开新标签页 点击,可打开一个当前选中数据库的新的查询标签页,最多可同时打开10个标签页。查询标签页的名称与脚本的名称保持一致。 ③ 实例信息区域 展示实例的IP、端口、实例名称等信息,鼠标悬浮可展示完整的信息。 ④ 功能按钮区域 执行:执行标签页内的SQL语句,也支持选择部分SQL语句执行。设定了F8为快捷键。 保存:将当前查询窗口中的所有SQL语句保存至我的脚本,方便下次使用,并支持对脚本进行命名。 格式化:优化选中的SQL语句的展示格式,增强可读性。 SQL诊断:提供对SQL执行计划进行诊断分析,并给出改写后的SQL以及索引优化建议。 预估执行计划:在SQL语句执行前预测SQL语句执行时可能采用的逻辑步骤和访问路径,当前仅支持MySQL和PostgreSQL数据库。 实际执行计划:在SQL语句执行时由数据库引擎生成,反映了实际执行的确切步骤和细节,当前仅支持MySQL和PostgreSQL数据库。 语法帮助:提供了涵盖表/索引、show语句、视图、函数/存储过程、触发器、事件、权限相关的语法,以及select、update、insert、delete、replace等常用语法。 设置:可以对查询窗口标签页内的字体大小、结果集展示方式、语法提示功能开启状态等选项进行设置。 SQL生成:SQL生成提供了自然语言转换为sql语句的智能AI功能。详见SQL生成。 注意 查询窗口暂不支持会话保持功能,依赖于SAVEPOINT、HANDLER等的事务性语句请一次性执行。 SQL诊断功能支持MySQL 5.7和8.0版本、PostgreSQL和SQL Server数据库。 语法帮助目前支持MySQL、PostgreSQL数据库。 管理员模式:此模式下执行SQL,不受风险、规范的限制,请谨慎操作,具体介绍参考管理员模式。 ⑤ 数据库用户区域 展示当前登录的数据库用户,可以进行退出或切换账号操作。 :跳转到对象列表界面。 :进入全屏操作。 ⑥ 数据库信息区域 展示当前选择的数据库信息,点击下拉列表可以切换到当前实例下其他的数据库,点击右侧的复制图标,可以复制完整的数据源信息。 ⑦ 可视化操作区域 该区域提供可视化管理数据库的功能: 表:分页展示当前数据库中的所有表信息,包括表名、表的大小、表的字段、字段类型、索引。右键单击目标表名称时,可进行打开表、新建表、编辑表、查看表详情、重命名表、复制表名、删除表等操作。且支持对表名进行搜索,修改表数据后,可以点击刷新按钮更新元数据。双击表名可于查询标签页生成简单的查询语句。 可编程对象:可查看当前数据库中的所有的可编程对象,包括视图、存储过程、函数、事件、触发器。右键单击可编程对象名称时,可进行创建、查看、编辑、删除等操作。 我的脚本:分页展示脚本列表,右键脚本名称可以对脚本进行查看、编辑、删除、复制、重命名等操作。 ⑧ 命令执行区域 支持如下功能: SQL执行:支持执行单条语句或批量执行,批量执行最多一次执行100条语句,每条语句对应一个结果集。 中断执行:SQL执行过程中可以单击取消查询中断SQL的执行。 语法高亮:以不同颜色显示不同的语法元素,尤其会对关键字进行区别显示,提高SQL语句可读性。 元数据智能提示:根据用户输入的内容以及数据库的语法规则,自动提示对应的元数据信息。 ⑨ 执行结果区域 该区域主要展示执行历史、执行信息、结果集等信息。 执行历史:分页展示当前用户在当前数据库下的SQL语句执行记录,默认展示20条,且支持通过执行时间进行搜索。 执行信息:展示每次点击执行按钮之后的执行结果信息,可以选择覆盖展示或者追加展示。对于DQL类的查询语句,执行信息界面不直接展示结果信息,可在结果集tab查看。 结果集:当执行DQL类语句时将在结果集界面展示结果信息。支持新增、修改、删除、导出等操作,同时还支持对查询结果进行关键字搜索、高亮展示、展示界面调整等功能。
        来自:
        帮助文档
        数据管理服务
        用户指南
        开发空间
        查询窗口
        查询窗口介绍
      • 查询和新建/编辑表结构
        操作步骤 从 数据资产 > 实例管理 > 库/模式列表 > 对象列表 页点击列表中的删除操作。 在查询窗口左侧表 tab中,右键表名称打开操作框,点击删除表 打开删除确认弹窗后点击确定按钮,即可完成删除表。
        来自:
        帮助文档
        数据管理服务
        用户指南
        开发空间
        查询窗口
        查询和新建/编辑表结构
      • 使用规范
        命令类型 使用建议 使用限制 String 使用mset、mget、msetnx命令时,建议为key增加hashtag来提高性能。如果不增加hashtag,则不同的key可能分散到不同的节点执行,会影响性能,并且不同节点的key无法保证原子性。 可以使用pipeline批量执行命令。 key的大小不超过100kB,value大小不超过1MB。 msetnx必须携带hashtag,否则命令会报错。 hash 使用hkeys、hvals、hgetall命令时,建议操作的元素数量限制在100以内, 建议使用hscan命令代替。 使用hmget、hmset、hscan命令时,建议单次操作的元素数量限制在100以内。 key+field大小不超过100KB,value大小不超过1MB。 在新建连接中首次执行hscan命令,需要从0开始扫描。如需分多次进行一轮完整扫描,需保持在同一个长连接中操作。 list 使用lrem、ltrim、lrange、linsert命令时,建议操作的元素数量限制在100以内。 建议仅在头部和尾部插入元素时使用linsert命令。 key大小不超过100KB,value大小不超过1MB。 不支持blpop、brpop、brpoplpush命令。 set 使用sdiff、sdiffstore、sinter、sinterstore、srandmember、sunion、sunionstore命令时,建议操作集合元素数量限制在100以内。 使用smembers命令时,建议操作集合元素数量限制在100以内,建议使用sscan替代。 key+member大小不超过100KB。 在新建连接中,首次执行sscan命令时,需要从0开始扫描。如果需要分多次进行一轮完整扫描,需保持在同一个长连接中操作。 smove、sunion、sinter、sdiff、sunionstore、sinterstore、sdiffstore命令需要给多key增加相同的hashtag。 zset 使用zcount、zinterstore、zlexcount、zrange、zrangebylex、zrangebyscore、zrank、zremrangebylex、zremrangebyrank、zremrangebyscore、zrevrange、zrevrangebylex、zrevrangebyscore、zrevrank、zunionstore命令时,建议操作集合元素数量限制在100以内。 由于zremrangebyscore命令不支持limit,因此建议使用“先执行zrangebyscore(加limit,count限制在100以内)查出符合条件的member,再执行zrem进行删除”的方式,控制每批删除的记录数。 key+member大小不超过100KB。 在新建连接中,首次执行zscan命令,需要从0开始扫描。如果需要分多次进行一轮完整扫描,需保持在同一个长连接中操作。 zunionstore、zinterstore命令需要给多key增加相同hashtag。 不支持bzpopmax、bzpopmin命令。 Stream 使用xinfo、xtrim命令时,建议操作的元素数量限制在100以内。 key大小不超过100KB。 xread命令需要给多key增加相同的hashtag。 xread、xreadgroup命令会占用内部有限连接资源,使用时必须搭配BLOCK选项设置超时时间,避免持续占用内部连接资源,影响其他命令的正常执行。 hyperloglog 使用pfmerge命令时,建议操作的元素数量限制在100以内。 key大小不超过100KB。 pfmerge、pfcount命令需要给多key增加相同hashtag。 不支持pfdebug、pfselftest命令。 geo 使用georadius、georadiusbymember命令时,建议操作的元素数量限制在100以内。 key+member大小不超过100KB。 如果georadius命令搭配store、storedist选项使用,相当于使用了多key,此时需要给多key增加相同hashtag。 不支持georadiusro、georadiusbymemberro命令。 bitop key大小不超过100KB。 bitop命令需要给多key增加相同hashtag。 key管理 scan操作搭配match pattern时,不建议使用后缀匹配,否则会影响性能。 使用del、exists命令时,建议为key增加hashtag,从而提高性能。如果不增加hashtag,则不同key可能分散到不同节点执行,影响性能,并且不同节点的key无法保证原子性。 可以使用pipeline批量执行命令。 使用sort命令时,建议操作的元素数量限制在100以内。 在新建连接中,首次执行scan命令,需要从0开始扫描。如需分多次进行一轮完整扫描,需保持在同一个长连接中操作。 sort命令需要给多key增加相同hashtag。 sort命令不支持store选项。 不支持debug、dump、migrate、move、object、rename、renamenx、restore、restoreasking、touch、unlink命令。 数据库管理 flushall命令会导致实例所有数据被清空,建议谨慎使用。 info命令返回的内存指标不代表数据量。如需查看数据量,请使用info capacity命令,该命令查询结果为数据量的预估值,非实时的准确值。 dbsize命令查询结果为key数量的预估值,非实时的准确值(由于采用MVCC机制)。在执行flushall之后,dbsize查询结果为0。 暂不支持通过config set命令调整参数l 由于目前还不支持多DB特性,因此select命令执行无效。 不支持bgrewriteaof、bgsave、client、command、flushdb、info keyspace、keys、lastsave、latency、lolwut、memory、module、monitor、post、psync、replconf、replicaof、role、save、shutdown、slaveof、slowlog、sync、swapdb命令。
        来自:
        帮助文档
        云数据库GeminiDB
        GeminiDB Redis接口
        用户指南
        实例开发规范与命令兼容
        使用规范
      • Lua脚本规范
        Lua脚本中禁用的命令列表 目前,在Lua脚本中禁用的GeminiDB Redis命令列表请参见命令兼容列表。
        来自:
        帮助文档
        云数据库GeminiDB
        GeminiDB Redis接口
        用户指南
        实例开发规范与命令兼容
        Lua脚本规范
      • 文档数据库服务设计规范
        分片设计规范 在文档数据库服务分片集群中,分片的设计规范是非常重要的,它可以影响集群的性能、可扩展性和可靠性。以下是一些常见的文档数据库服务分片设计规范: 分片键的选择:分片键是用于分片集合的字段或字段组合。应该选择具有高选择性(即有区分度)的字段作为分片键,例如访问频率较高的字段或具有高度唯一性的字段。应该避免使用随机值或低选择性的字段作为分片键,因为这会导致数据分布不均衡,影响集群性能和可扩展性。 分片键的数据类型:分片键的数据类型应该选择适合应用程序和数据的数据类型。例如,如果查询经常使用时间戳,则可以将时间戳作为分片键,并选择适合的日期时间数据类型。 分片键的范围:分片键的范围应该选择适当的范围,以便在数据分片时能够均匀分布。例如,如果使用范围查询,则应该选择具有大范围的分片键,以便在多个分片上均匀分布数据。 分片集群的节点数:分片集群的节点数应该根据数据量、负载和可扩展性需求来选择。通常建议将分片集群的节点数设置为2的幂次方,例如2、4、8、16等,以便更好地管理和维护集群。 避免 id 作为分片键 。id 通常是有序的,不太符合分布广泛的要求。并且经常使用 id 作为查询条件,不利于分片。 分片的备份和恢复:在使用文档数据库服务分片集群时,应该定期备份和恢复数据,以保证数据的安全性和可靠性。可以使用文档数据库服务提供的备份和恢复工具或第三方工具来完成这些操作。 需要留意的是,在设计文档数据库服务分片集群时,应该根据具体的应用程序和文档数据库服务环境来选择合适的分片设计规范。在分片集群的运维和维护过程中,应该遵循文档数据库服务的最佳实践和规范,例如合理管理数据、监控集群性能和故障等。
        来自:
        帮助文档
        文档数据库服务
        开发指南
        文档数据库服务使用规范
        文档数据库服务设计规范
      • 创建用户
        本页介绍了文档数据库服务如何创建用户。 创建用户步骤 在文档数据库服务中,可以使用 createUser 命令或 db.createUser() 方法来创建用户。创建用户通常包括以下几个步骤: 1. 连接到文档数据库服务实例。 首先,需要连接到文档数据库服务实例或集群。可以使用 mongo 命令或文档数据库服务客户端来连接到文档数据库服务实例。 2. 切换到目标数据库。 连接到文档数据库服务实例后,需要切换到目标数据库。可以使用 use 命令或 db.getSiblingDB() 方法来切换到目标数据库。例如,下面的命令切换到名为 mydb 的数据库: use mydb 3. 创建用户。 切换到目标数据库后,可以使用 createUser 命令或 db.createUser(user,writeConcern) 方法来创建用户。例如,下面的命令创建一个名为 myuser,密码为 mypassword 的用户,并赋予 readWrite 权限: db.createUser( { user: "myuser", pwd: "", roles: [ { role: "readWrite", db: "mydb" } ] } ) 这个用户 myuser 将具有对 mydb 数据库的读写权限,并且可以使用指定的密码进行身份验证。可以根据需要修改用户的名称、密码和权限。 createUser具体格式 具体创建用户的格式如下: db.createUser( { user: " ", pwd: " ", customData: { }, roles: [ { role: " ", db: " " } " ", ... ], authenticationRestrictions: [ { clientSource: [" " " ", ...], serverAddress: [" " " ", ...] }, ... ] mechanisms: [ " ", ... ], passwordDigestor: " " } ) 参数说明: 字段 类型 说明 user string 用户名称。 pwd string 用户密码,如果您在$external数据库上使用db.createUser()创建一个用户,并将凭据存储在文档数据库服务外部,那么密码字段(pwd)不是必需的。 customData 文档 该字段可用于存储管理员希望与此特定用户关联的任何数据。例如,这可以是用户的身份信息ID。 roles 数组 用户角色。在这里可以指定一个空数组[]来创建没有角色的用户。 authenticationRestrictions 数组 身份验证限制是服务器对创建的用户强制执行的规则,它用于指定角色可以访问的IP地址或IP地址段。 mechanisms 数组 用户凭据,可以通过指定特定的SCRAM机制来创建SCRAM用户凭据。可用的机制包括SCRAMSHA1和SCRAMSHA256。 passwordDigestor string 表示在server端或client端验证密码,默认是server。
        来自:
        帮助文档
        文档数据库服务
        开发指南
        数据库权限管理
        用户管理
        创建用户
      • 预置角色
        本页介绍了文档数据库服务的预置角色。 文档数据库服务提供了一些预置角色,这些角色具有特定的权限和功能,可以用于管理文档数据库服务实例或集群。以下是文档数据库服务中的预置角色: 角色 权限描述 包含的操作命令 read 该角色具有读取所有非系统集合数据和订阅部分系统集合(system.indexes、system.js、system.namespaces)的权限。 changeStream、collStats、dbHash、dbStats、find、killCursors、listIndexes、listCollections readWrite 该角色基于read角色的权限,并额外增加了对非系统集合数据的修改权限。然而,该角色仅对系统集合中的system.js具有修改权限。 collStats、convertToCapped、createCollection、dbHash、dbStats、dropCollection、createIndex、dropIndex、find、insert、killCursors、listIndexes、listCollections、remove、renameCollectionSameDB、update dbAdmin 该角色具备执行特定管理任务的权限,包括与模式相关的操作、索引管理和收集统计信息等。然而,该角色不包含对用户和角色进行管理的权限。 对于系统集合(system.indexes、system.namespaces、system.profile)包含命令操作:collStats、dbHash、dbStats、find、killCursors、listIndexes、listCollections、dropCollection and createCollection(仅适用system.profile) 对于非系统集合包含命令操作:bypassDocumentValidation、collMod、collStats、compact、convertToCapped、createCollection、createIndex、dbStats、dropCollection、dropDatabase、dropIndex、enableProfiler、reIndex、renameCollectionSameDB、repairDatabase、storageDetails、validate userAdmin 该角色具有在当前数据库中创建和修改角色以及用户的权限。此角色允许向任何用户(包括自身)授予任意权限,因此间接提供对超级用户(root)的访问权限。如果限定在admin数据库中,该角色还包括集群管理权限。 changeCustomData、changePassword、createRole、createUser、dropRole、dropUser、grantRole、revokeRole、setAuthenticationRestriction、viewRole、viewUser dbOwner 该角色是MongoDB中的一种数据库管理角色,授予了对指定数据库的完全权限。该角色具有管理指定数据库的能力,可以执行各种操作,如创建、修改和删除集合、索引和用户等。dbOwner角色拥有对指定数据库的所有权限,包括对数据库中任何集合、索引和用户的创建、修改和删除操作。 createCollection 、dropCollection、 createIndex 、dropIndex、createUser、updateUser、removeUser 、dropAllUsersFromDatabase、grantRolesToUser、revokeRolesFromUser 、dropAllRolesFromDatabase、viewRole 、viewUser、convertToCapped、collMod、dbStats
        来自:
        帮助文档
        文档数据库服务
        开发指南
        数据库权限管理
        角色管理
        预置角色
      • 自定义角色
        本页介绍了文档数据库服务自定义角色。 文档数据库服务支持用户自定义角色,可以根据需要创建和配置自己的角色,并根据这些角色为用户分配特定的权限和功能。自定义角色可以帮助管理员更好地管理文档数据库服务实例或集群,并提高安全性。 创建自定义角色需要使用 createRole 命令或 db.createRole() 方法,并指定角色的名称、权限和其他属性,具体操作请参见管理角色。
        来自:
        帮助文档
        文档数据库服务
        开发指南
        数据库权限管理
        角色管理
        自定义角色
      • 管理角色
        字段 类型 说明 role string 角色名称。 privileges 数组 必选参数,数组元素表示角色所具备的权限。如果该参数设置为空集合,表示该角色没有任何权限。 resource 文档 该参数用于指定数据库名称或集合名称。 actions 数组 该参数对应的是资源可用的操作列表,其中常见的操作包括find、count、getMore、listDatabases、listCollections、listIndexes、insert、update、remove等。 roles 数组 必选参数,数组元素用于指定角色继承的角色名。这可以是系统预设的角色,例如read或readWrite,也可以是用户自定义的角色。 authenticationRestrictions 数组 该参数用于指定角色可以接受的IP地址或IP地址范围。
        来自:
        帮助文档
        文档数据库服务
        开发指南
        数据库权限管理
        角色管理
        管理角色
      • 基于Java访问数据库
        创建索引 MongoCollection collectionTest memberInfoDatabase.getCollection("goldmember"); collectionTest.createIndex(Indexes.ascending("age"));
        来自:
        帮助文档
        文档数据库服务
        开发指南
        应用程序开发
        基于Java开发
        基于Java访问数据库
      • 基于Java连接数据库
        本页介绍了使用Java如何连接文档数据库服务。 使用SSL证书连接 1. 您可以在“实例管理”页面,单击实例名称进入“基本新消息”页面,确认开启了SSL后,单击“实例信息”模块“SSL”处的,下载证书。 2. 通过Java连接文档数据库服务,代码中的Java链接格式如下: 1. 连接到单节点: mongodb:// : @ : / ?authSourceadmin&ssltrue 2. 连接到副本集: mongodb:// : @ : / authSourceadmin&replicaSetreplica&ssltrue 3. 连接到集群: mongodb:// : @ : / ?authSourceadmin&ssltrue 参数 说明 username 当前用户名。 password 当前用户的密码。 instanceip 如果通过弹性云服务器连接,“instanceip”是主机IP,即“基本信息”页面该实例的“内网地址”。 如果通过连接了公网的设备访问,“instanceip”为该实例已绑定的“弹性公网IP”。 instanceport 端口,默认8030,当前端口,参考“基本信息”页面该实例的“数据库端口”。 databasename 数据库名,即需要连接的数据库名。 authSource 鉴权用户数据库,取值为admin。 ssl 连接模式,值为true代表是使用ssl连接模式。 3. 连接文档数据库服务的Java代码,可参考以下示例: import com.mongodb.MongoClient; import com.mongodb.MongoClientOptions; import com.mongodb.MongoCredential; import com.mongodb.ServerAddress; ​ import javax.net.ssl.SSLContext; import javax.net.ssl.TrustManagerFactory; import java.io.FileInputStream; import java.security.KeyStore; import java.security.cert.CertificateFactory; import java.security.cert.X509Certificate; ​ public class MongoDBSSLExample { public static void main(String[] args) throws Exception { //用户名 String username ""; //数据库 String databaseName ""; //密码 String password ""; //证书路径 String certPath ""; //连接地址 String host ""; //端口 int port 8030; // 创建MongoCredential对象 MongoCredential credential MongoCredential.createCredential(username, databaseName, password.toCharArray()); // 加载证书 CertificateFactory certificateFactory CertificateFactory.getInstance("X.509"); X509Certificate certificate (X509Certificate) certificateFactory.generateCertificate(new FileInputStream(certPath)); // 创建SSL上下文 SSLContext sslContext SSLContext.getInstance("TLS"); KeyStore keyStore KeyStore.getInstance(KeyStore.getDefaultType()); keyStore.load(null, null); keyStore.setCertificateEntry("mongodbcert", certificate); TrustManagerFactory trustManagerFactory TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm()); trustManagerFactory.init(keyStore); sslContext.init(null, trustManagerFactory.getTrustManagers(), null); ​ // 创建MongoClient实例 MongoClientOptions options MongoClientOptions.builder() .sslEnabled(true) .sslInvalidHostNameAllowed(true) .sslContext(sslContext) .build(); MongoClient mongoClient new MongoClient(new ServerAddress(host, port), credential, options); } }
        来自:
        帮助文档
        文档数据库服务
        开发指南
        应用程序开发
        基于Java开发
        基于Java连接数据库
      • SQL限流
        参数 是否必选 说明 cclrulename 是 限流规则的名称。 为避免名称与SQL关键字冲突,建议在规则名称的前后各加一个反引号()。 database 是 数据库的名称,支持使用星号()表示任意匹配。为避免名称与SQL关键字冲突,建议在数据库名称的前后各加一个反引号()。 '<usename>'@'<host>' 是 账号名称,其中 <host> 支持用百分号(%)来表示任意匹配。 { UPDATE SELECT INSERT DELETE } 是 SQL操作类型,取值范围: SELECT DELETE UPDATE INSERT [ filteroptions ] 否 过滤条件,支持以下两种条件: 注意 一个语句只能选择一种过滤条件。 关键词(KEYWORD) : 关键词按顺序在SQL语句中进行匹配,依次匹配到所有关键词,才算匹配成功。若关键字是SQL语句中的参数值,匹配时大小写敏感;若关键词是SQL语句中的其他词,匹配时大小写不敏感。 SQL语句(QUERY) : 基于输入的SQL语句生成模版SQL,进而存储模版SQL的hashcode进行匹配。具体的模版SQL和hashcode可通过SHOW命令查询。 { maxconcurrencyoption maxmergerowsoption } 是 限流规则,支持以下两种规则: 注意 参数作用范围为每个DBProxy节点,而非整个DBProxy集群。 一个语句只能选择一种限流规则。 maxconcurrencyoption : MAXCONCURRENCY :必选参数,表示匹配到该限流规则的SQL语句的最大并发度。当最大并发度超过该值后,SQL语句将进入等待队列。 WAITQUEUESIZE :可选参数,表示超过并发度后的最大等待队列长度。当等待队列长度超过该值后,SQL语句将报错,默认为0。 WAITTIMEOUT :可选参数,表示SQL语句在等待队列中的最长等待时间。当超过该等待时间后,SQL语句将报错。单位为秒,默认值60。 maxmergerowsoption : 注意 该规则只能用于 SELECT操作类型 。 MAXMERGEROWS : 必选参数,表示匹配到该规则的SQL语句从数据节点DN(Data Node)拉取数据的最大行数。当超过该行数,SQL语句将报错。
        来自:
        帮助文档
        分布式关系型数据库
        开发指南
        SQL限流
      • 如何创建和管理数据库
        本页介绍了如何创建和管理文档数据库服务。 在文档数据库服务中,可以使用 use命令来创建和切换数据库,使用show命令来显示数据库列表和数据库信息,使用 db命令来管理当前数据库。以下是一些常见的文档数据库服务创建和管理数据库的方法: 创建数据库:使用 use 命令创建数据库,并切换到该库: use mydatabase 如果数据库不存在,则会自动创建。这个创建是隐式创建,创建完如果不做任何操作,使用 show dbs是看不到刚创建的数据库的。所以创建完一般为数据库插入一条记录: db.product.insert({"name":"洗衣机"}) 对于文档数据库服务,隐式创建集合只有在内容插入后才会创建,即创建集合(数据表)后要再插入一个文档(记录),集合才会真正创建。 查看所有的数据库:使用show dbs命令可以查看所有的数据库: show dbs 删除数据库:使用db.dropDatabase()可以删除当前使用的数据库: db.dropDatabase() 重命名数据库:使用 db.renameDatabase()可以重命名数据库: db.renameDatabase(" ", " ") 数据库权限管理:为数据库用户分配 read、write或 readWrite权限: db.createUser({ user: "user1", pwd: "", roles: [{ role: "read", db: "mydatabase" }] }) 切换数据库:使用 use 命令切换到其他数据库: use otherdatabase 查看当前使用的数据库:使用 db命令查看当前使用的数据库: db 创建库时,数据库名称命名请留意以下几点: 只能使用ASCII字符集中的字母、数字和下划线()。 不能使用句点(.)或美元符号($)作为数据库名称的第一个字符。 数据库名称应该小写,并且长度应该在1到64个字符之间。 文档数据库服务保留了几个数据库名称,例如 admin、config和 local等,不能使用这些名称作为数据库名称。 数据库名称应该和应用程序的名称或业务领域相关,以便更好地管理和维护数据库。
        来自:
        帮助文档
        文档数据库服务
        开发指南
        数据库使用
        如何创建和管理数据库
      • 数据切分策略
        本文为您介绍数据切分策略。 切分策略 切分维度的选择是决定分布式数据最重要的一个权衡性因素,需要审慎选择,一般而言,可以按照以下五个维度进行思考和权衡,包括数据均衡度考虑、事务边界因素、常用查询效率考虑、切片索引考虑、简单性策略。 容量和访问均衡 数据容量和访问均衡是我们考量的第一点,不均衡的数据分布和访问无法充分发挥数据拆分的能力,让访问体验变差,同时带来成本上的损耗。所以一般来说拆分字段区分度比较大,数据分布和访问相对会比较均衡,但是这点也需要考虑到某一个拆分值是否有热点的问题。 事务边界 事务边界越大(或者单个sql所执行的数据分片数),那么系统的锁冲突概率越高,系统越难以扩展,性能越低。因此,若想将系统做到很好的扩展性,那么一个最重要的原则就是想办法划小事务边界,并尽可能让事务的边界限制在单台机器内。缩小事务边界的方式。 常用查询 对于常用查询优化的核心要义,就是尽可能让您的一次前端请求,物理上直接发送到一台存储的机器上,尽可能避免那些需要将请求下发到多台机器的查询。下发到多台机器的查询,虽然每次查询的延迟不会出现问题,但这类查询会导致一次请求物理上必须被发送到很大一批存储的机器上,会额外占用过多下层数据节点的各类的资源,因此应该尽可能的予以避免。 切片索引 对常用的非分片键查询条件构建切片索引,提升非分片键查询(select语句)时的效率,避免广播查询。 保持简单 如果查询优化与均衡读写访问两个选项发生了冲突,那么请选择均衡读写访问作为优先考虑原则,因为查询的问题相对的更好解决,无论是加机器做全表扫描或做切片索引都是可以解决的。而写入或单机容量如果出现不均衡,处理起来难度就比较大。 尽管复杂的切分规则或取巧的程序代码能够带来短期系统性能或成本上的好处,但其后面所带来的系统运维复杂度上升将会吃掉之前您在系统中获得的大部分好处。因此,从系统架构上来说,以82法则,简单直接处理的方式往往是最有效的方式。
        来自:
        帮助文档
        分布式关系型数据库
        开发指南
        SQL调优指南
        数据切分策略
      • DT
        本文为您介绍DRDS管理命令中的DT命令。 UDAL DT START [ 'transactionid' ] 语法说明 启动分布式事务 示例 plaintext mysql> UDAL DT START 88; + Transactionid + drds4762629931746501851957start + 1 row in set (0.00 sec) UDAL DT SHOW VARIABLES [ LIKE 'variablepattern' ] 语法说明 查看分布式事务变量,回显参数说明如下: 参数 描述 Variablename 参数名称 Value 参数值 Writable 是否可修改 示例 plaintext mysql> UDAL DT SHOW VARIABLES; +++ Variablename Value Writable +++ compensationlock false Yes slavemastercommit false Yes prohibitcrosstransaction true No dtholdrequestwhenlock false No dtholdtimeout 60000 No dtbackupzklock true No ismultinodeserialization true No isautostartdt true No isignorerestartdt true No maxtransactiontablength 30 No +++ 10 rows in set (0.00 sec) UDAL DT SET 'variablename' 'variablevalue' 语法说明 设置分布式事务变量,回显说明如下: 注意 udal dt show variables存在writable选项,默认为no且都不支持修改。开启udal dt start后,支持修改compensationlock、slavemastercommit。 参数 描述 compensationlock 是否开启事务锁 slavemastercommit 是否关键节点最后提交 示例 plaintext mysql> udal dt show variables; +++ Variablename Value Writable +++ compensationlock false No slavemastercommit false No prohibitcrosstransaction false No dtholdrequestwhenlock false No dtholdtimeout 60000 No dtbackupzklock true No ismultinodeserialization true No isautostartdt true No isignorerestartdt true No maxtransactiontablength 30 No +++ 10 rows in set (0.00 sec) mysql> udal dt start; + Transactionid + drds4762629931746689373877100003 + 1 row in set (0.00 sec) mysql> udal dt show variables; +++ Variablename Value Writable +++ compensationlock false Yes slavemastercommit false Yes prohibitcrosstransaction false No dtholdrequestwhenlock false No dtholdtimeout 60000 No dtbackupzklock true No ismultinodeserialization true No isautostartdt true No isignorerestartdt true No maxtransactiontablength 30 No +++ 10 rows in set (0.00 sec) mysql> UDAL DT SET compensationlock'true'; Query OK, 1 row affected (0.00 sec)
        来自:
        帮助文档
        分布式关系型数据库
        开发指南
        管理命令
        DT
      • XA
        本文为您介绍DRDS管理命令中的XA命令。 UDAL XA START 语法说明 启动XA分布式事务 示例 plaintext mysql> UDAL XA START; + Xid + node1de0f69041 + 1 row in set (0.00 sec) UDAL XA RECOVER [ DATANODE {DN}XID {XID}] 语法说明 在所有或特定数据节点中,查看未终止的XA分布式事务 示例 plaintext mysql> UDAL XA RECOVER; +++++ Id Xid State Runtime Frontendstate +++++ 56639 node1de0f69041 XAACTIVE 105 alive +++++mysql> UDAL XA RECOVER [ DATANODE {DN}XID {XID}]; +++++ Id Xid State Runtime Frontendstate +++++ 56639 node1de0f69041 XAACTIVE 85 alive +++++ 1 row in set (0.00 sec) UDAL XA COMMIT [XID] WHERE DN [DATANODE] 语法说明 XA提交特定的XA分布式事务。 注意 命令中的XID指的是mysql prepare后的XID,不是UDAL XA START启动时的XID,在异常情况下才会出现,因此,直接执行该命令会报错。 示例 plaintext mysql> UDAL XA COMMIT [node1de0f69041] WHERE DN [UDALADMIN01]; ERROR 3023 (HY000): UDAL Command execution error: UDAL XA COMMIT [node1de0f69041] WHERE DN [UDALADMIN01] expect literal string,but get token LBRACKET ,value commit
        来自:
        帮助文档
        分布式关系型数据库
        开发指南
        管理命令
        XA
      • 系统集合
        本页介绍了文档数据库服务系统集合。 在文档数据库服务4.0版本中,系统集合包括以下这些: ● admin.system.roles 存储角色定义 ● admin.system.users 存储用户定义 ● admin.system.version 存储集群/副本集版本信息 ● local.startuplog 存储启动日志 ● config.system.sessions 存储会话信息 ● config.transactions 存储事务信息 ● config.settings 存储设置 ● config.databases 存储数据库定义 ● config.collections 存储集合定义 ● config.views 存储视图定义 ● config.minversions 存储数据库中最小文档版本 ● config.fns 存储DBRef相关信息 ● config.oplog.$main ops log 主集合 ● config.oplog.rs ops log 副本集特有 ● config.oplog.local ops log mongos 特有 ● [database name].system.namespaces 存储名称空间信息 ● [database name].system.indexes 存储索引定义 ● [database name].system.js 存储MR/如程序 ● [database name].system.profile 存储profile信息 ● [database name].system.users 存储数据库用户信息
        来自:
        帮助文档
        文档数据库服务
        开发指南
        系统集合
      • 写入/更新命令
        本页介绍了文档数据库服务写入和更新命令。 文档数据库服务写入和更新主要有以下几种命令: insert():插入新数据。 基础语法: ​​db.collection.insert(document)​ 或者 ​​db.collection.insertOne(document)​ 示例: db.users.insert({name:"John", age:30}) db.users.insertOne({name:"Mary", age:25}) save():如果有id,则更新,否则插入新文档。 ​​db.collection.save(document)​ update():更新已存在的文档。 基础语法: ​​db.collection.update(query, update, {multi:true})​ 参数: query:更新的查询条件。 update:{$set: {xxx: yyy}},使用set操作符更新字段。 {multi:true}:是否更新多条记录,默认false只更新一条。 示例: db.users.update({name:"John"}, {$set: {age: 31}}) db.users.update({name:"John"},{$set: {age: 31}},{multi:true}) insertMany():插入多条数据。 ​​db.collection.insertMany([documents])​ remove():删除数据。 ​​db.collection.remove(query, justOne)​ 示例: db.users.remove({age: {$lt: 30}}) // 删除age 小于30 的所有文档 db.users.remove({name:"John"}, true) //删除name为John的一条文档
        来自:
        帮助文档
        文档数据库服务
        开发指南
        文档数据库服务使用规范
        文档数据库服务基础命令规范
        写入/更新命令
      • 默认权限机制
        本页介绍了文档数据库服务的默认权限机制。 文档数据库服务在与社区原生版本MongoDB相比时,针对不断增长的安全挑战进行了一系列的增强措施。与社区原生版本不同,文档数据库服务采用的默认的安全策略,要求连接数据库时必须进行鉴权,否则无法使用数据库。这种改进确保了文档数据库服务的安全性。 带鉴权的连接url: mongodb:// : @ : / ?authSourceadmin 不带鉴权的连接url: mongodb:// : / 数据库实例创建后,系统会创建默认的管理员用户root,但是需要客户指定密码,并满足密码复杂度要求。
        来自:
        帮助文档
        文档数据库服务
        开发指南
        数据库权限管理
        默认权限机制
      • 基于python访问数据库
        本页介绍了如何使用python访问和操作文档数据库服务。 访问DataBase database client["testdb"] 访问集合 collection database["testcollection"] 显示的创建一个集合 goldmemberconllection database.createcollection("goldmember") 插入数据 document {"name": "ff", "age": 30, "email": "ff11@ctyun.com"} goldmemberconllection.insertone(document) 删除数据 result collection.deleteone({'name': 'ff'}) 删除collection database.dropcollection("test") 读数据 query {"name": "ff"} result collection.findone(query) print(result) 运行命令 database.command("collstats","test") database.command("buildinfo") 计数 count goldmemberconllection.find().count() 排序 results goldmemberconllection.find().sort('name',1) 创建索引 resultdatabase[goldmemberconllection].createindex([('name',1)])
        来自:
        帮助文档
        文档数据库服务
        开发指南
        应用程序开发
        基于Python开发
        基于python访问数据库
      • 如何创建和管理索引
        本页介绍了如何创建和管理文档数据库服务索引。 在文档数据库服务中,可以使用索引来加速查询操作。索引是一个数据结构,它可以在集合中对指定的字段进行排序,并为这些字段创建一个快速查找的数据结构。文档数据库服务支持多种类型的索引,例如单字段索引、多字段联合索引、全文索引等。 索引分类 单字段索引:单字段索引是最常见的索引类型,它基于集合中的单个字段进行排序和查找。 复合索引:复合索引是基于多个字段进行排序和查找的索引类型。复合索引可以包含多个字段,可以根据这些字段的顺序指定索引键的排序方式。 多键索引:在文档数据库服务中,一个文档可以包含多个值相同的数组或嵌套文档,这些值可以被视为多个键。多键索引可以基于这些多个键对文档进行排序和查找。下面是一个示例: 假设有一个集合 books,其中包含每本书的信息,其中一个字段 tags 是一个包含多个标签的数组。例如: { "id" : ObjectId("6146c03f6c9d8f5fb9da0e3c"), "title" : "The Great Gatsby", "author" : "F. Scott Fitzgerald", "tags" : [ "Fiction", "Classic", "Romance" ] } 为了加速对 tags 字段的查询操作,可以在 tags 字段上创建一个多键索引。例如: db.books.createIndex({ tags: 1 }) 这将在 tags 字段上创建一个升序的多键索引。 现在,可以使用以下查询来查找包含特定标签的书籍: db.books.find({ tags: "Fiction" }) 这个查询将使用 tags 字段上的多键索引来加速查询,返回所有包含 "Fiction" 标签的书籍。 需要注意的是,多键索引的效率可能受到数组字段中值的数量和类型的影响。如果数组字段中包含大量的值或嵌套文档,则多键索引可能不是最佳选择。在使用多键索引时,需要根据实际情况评估其效果和性能。 地理空间索引:地理空间索引是一种针对地理空间数据进行优化的索引类型,它可以加速针对地理空间数据的查询和聚合操作。可以使用 createIndex() 命令创建地理空间索引。 文本索引:文本索引是一种针对文本数据进行优化的索引类型,它可以加速全文检索操作。文本索引只能用于字符串字段。可以使用 createIndex() 命令创建文本索引。 散列索引:散列索引是一种基于哈希函数的索引类型,它可以加速散列键(如密码)的查找操作。可以使用 createIndex() 命令创建散列索引。 TTL 索引:TTL 索引是一种基于时间戳的索引类型,它可以自动删除满足一定时间条件的文档。可以使用 createIndex() 命令创建 TTL 索引。
        来自:
        帮助文档
        文档数据库服务
        开发指南
        数据库使用
        如何创建和管理索引
      • 索引规范
        本文为您介绍索引规范。 1. 禁止修改聚集索引或主键 为了维持B+tree带来大量的数据移动,一般要求使用跟业务不相关的id来作为整形自增主键 2. 尽量合并索引 索引加快了查询度,但是却会影响写入性能。 一个表的索引应该结合这个表相关的所有SQL综合创建,尽量合并。 组合索引的原则是:过滤性越好的字段越靠前,例如key (a)和key(a,b)存在,则可以直接删除key(a),对于select ……from tb where a123;,则可以使用索引(a,b)。 3. 禁止给选择性低的字段建单列索引 MySQL对索引的过滤性存在要求,如果过滤性太低,则MySQL会被放弃使用。 4. 禁止使用外键约束 对性能损耗特别大。 让应用程序去维护约束。 5. 字符类型字段应尽量使用前缀索引 太长的索引不仅影响写入性能,而且使用效果较差,因此字符串类型字段一般只建前缀索引,例如alter table testlongstr add index idxstr(str(16));。 6. 合理使用复合索引 一般情况下,复合索引比普通索引更加适用,因此,有些索引可以修改成复合索引。 7. 针对LIKE查询的索引问题,应注意使用前缀索引 LIKE只能使用前缀索引,示例说明如下: col like “abc%” 可以用索引 col like “%abc%” 不可以用索引 col like“%abc”不可以用索引
        来自:
        帮助文档
        分布式关系型数据库
        开发指南
        SQL调优指南
        SQL基础规范
        索引规范
      • 如何创建和管理集合
        创建固定集合 固定集合是指那些集合的大小或者文档数有最大值,当集合的大小或者数量超过最大值后, 集合的最早存储的值会被自动删除掉 。 如下命令创建了一个集合,最大值是50MB,文档数量最多为500000。 db.createCollection("bookmark", { capped : true, size : 52428800, max : 500000 } ) 创建分片集合 在文档数据库服务分片集群中,要想使用分片功能,首先要创建分片集合。 主要步骤是: 1. 首先创建分片键索引。分片集合必须有分片键索引。 db.collection.createIndex({ : 1 }, {name: }) 例如: db.users.createIndex({ "userid": 1 }, {name: "userid1"})//这里的1表示指定升序索引 2. 然后使用 sh.enableSharding()启用分片功能。 sh.enableSharding(" ") 3. 再用 sh.shardCollection()将集合分片。 sh.shardCollection(" . ", { : 1 }, { } ) 例如: sh.shardCollection("mydatabase.users", { "userid" : 1 }, { "requireIndex" : true } ) 这里我们使用 userid作为分片键。 4. 如果想分割已存在的集合,可以使用 shardCollection时的 splitAt选项。 sh.shardCollection("mydatabase.largecollection", { score : 1 }, { splitAt : { score : 1000 } } ) 这里我们指定在 score 1000 处分割集合,表示将 "score" 字段的值小于或等于 1000 的文档分配到一个分片中,而将 "score" 字段的值大于 1000 的文档分配到另一个分片中 。 通过上述步骤就可以创建了分片集合。文档数据库服务会自动将集合数据分布到各个分片上。 文档数据库服务分片集群支持两种分片策略: 范围分片,支持基于Shard Key的范围查询。 哈希分片,能够将写入均衡分布到各个Shard。
        来自:
        帮助文档
        文档数据库服务
        开发指南
        数据库使用
        如何创建和管理集合
      • 使用Query Profiling分析SQL性能
        阶段 核心作用 可诊断的典型问题 SQL Parse SQL语法解析 如果语法解析阶段耗时过长,检查执行节点CPU资源情况,是否为服务器资源紧张 PreCheck 执行前检查,包括事务条件校验、HINT解析语句重分布处理、用户管理语句拦截 如果该阶段后无后续阶段,则展示的语句可能为用户管理语句 Index Proess 全局索引语句拦截 展示的语句为全局索引处理语句 Execute Sequence 序列语句拦截 展示的语句为序列处理语句 Encrypt Column 加密改写所序列并重分布 如果消耗时间过长,检查加密数据和服务器加密计算资源 Route 路由计算 路由计算消耗理论较少,且存在缓存 PreExecute 执行前处理,包括权限检查,其他校验 执行前检查理论值较小 OLAP Execute AP语句执行拦截 语句被AP执行路径拦截 Wait Lock 内部锁等待 等待锁时间,集群可能正在进行补偿事务 Get Connection 从分片节点获取连接 从数据节点获取物理连接时间,如果时间异常,可检查连接池状态和后端数据节点最大连接数状态 Execute SQL 分片节点执行语句 可对比不同分片执行语句时间,判断后端节点执行或者网络是否有异常 Fetch Data 从分片节点接收数据 可对比不同节点返回或影响的数据行数,判断数据是否倾斜,可对比返回数据耗时,判断网络是否波动 Merge 跨分片结果集聚合 Merge阶段会占用较多内存,需进行限制或监控内存使用情况 Write To Client 最终结果集返回客户端 写入网络缓存 OverAll 语句总体执行时间 对比总耗时和各阶段耗时,判断是否存在未监控的阶段消耗了大量时间
        来自:
        帮助文档
        分布式关系型数据库
        开发指南
        SQL调优指南
        使用Query Profiling分析SQL性能
      • Online DDL
        DRDS支持常见的在线DDL操作,主要包括:删除字段、修改字段、增加字段、创建表等。 使用示例 sql 增加字段: alter table torder add column ordersum int(10) NOT NULL DEFAULT 100; 修改字段: alter table torder modify column ordersum int(10) NOT NULL DEFAULT 200; 删除字段: alter table torder drop ordersum; 创建表: create table employee( id int not null,primary key (id))engineinnodb default charsetutf8;
        来自:
        帮助文档
        分布式关系型数据库
        开发指南
        Online DDL
      • 1
      • ...
      • 123
      • 124
      • 125
      • 126
      • 127
      • ...
      • 170
      跳转至
      推荐热词
      天翼云运维管理审计系统天翼云云服务平台云服务备份云日志服务应用运维管理云手机云电脑天翼云云hbase数据库电信云大数据saas服务电信云大数据paas服务轻量型云主机天翼云客户服务电话应用编排服务天翼云云安全解决方案云服务总线CSB天翼云服务器配置天翼云联邦学习产品天翼云云安全天翼云企业上云解决方案天翼云产品天翼云视频云存储

      天翼云最新活动

      云聚517 · 好价翼起拼

      爆款云主机低至25.83元/年,参与拼团享更多优惠,拼成得额外优惠券

      安全隔离版OpenClaw

      OpenClaw云服务器专属“龙虾“套餐低至1.5折起

      聚力AI赋能 天翼云大模型专项

      大模型特惠专区·Token Plan 轻享包低至9.9元起

      青云志云端助力计划

      一站式科研助手,海外资源安全访问平台,助力青年翼展宏图,平步青云

      企业出海解决方案

      助力您的业务扬帆出海,通达全球!

      天翼云信创专区

      “一云多芯、一云多态”,国产化软件全面适配,国产操作系统及硬件芯片支持丰富

      中小企业服务商合作专区

      国家云助力中小企业腾飞,高额上云补贴重磅上线

      云上钜惠

      爆款云主机全场特惠,2核4G只要1.8折起!

      产品推荐

      弹性云主机 ECS

      物理机 DPS

      训推服务

      应用托管

      智算一体机

      知识库问答

      人脸实名认证

      人脸属性识别

      人脸活体检测

      推荐文档

      玩转天翼云④:ntp时间同步服务

      修改实例安全组

      错误日志

      • 7*24小时售后
      • 无忧退款
      • 免费备案
      • 专家服务
      售前咨询热线
      400-810-9889转1
      关注天翼云
      • 旗舰店
      • 天翼云APP
      • 天翼云微信公众号
      服务与支持
      • 备案中心
      • 售前咨询
      • 智能客服
      • 自助服务
      • 工单管理
      • 客户公告
      • 涉诈举报
      账户管理
      • 管理中心
      • 订单管理
      • 余额管理
      • 发票管理
      • 充值汇款
      • 续费管理
      快速入口
      • 天翼云旗舰店
      • 文档中心
      • 最新活动
      • 免费试用
      • 信任中心
      • 天翼云学堂
      云网生态
      • 甄选商城
      • 渠道合作
      • 云市场合作
      了解天翼云
      • 关于天翼云
      • 天翼云APP
      • 服务案例
      • 新闻资讯
      • 联系我们
      热门产品
      • 云电脑
      • 弹性云主机
      • 云电脑政企版
      • 天翼云手机
      • 云数据库
      • 对象存储
      • 云硬盘
      • Web应用防火墙
      • 息壤智算平台
      • CDN加速
      热门推荐
      • 云服务备份
      • 边缘安全加速平台
      • 全站加速
      • 安全加速
      • 云服务器
      • 云主机
      • 智能边缘云
      • 应用编排服务
      • 微服务引擎
      • 共享流量包
      更多推荐
      • web应用防火墙
      • 密钥管理
      • 等保咨询
      • 安全专区
      • 应用运维管理
      • 云日志服务
      • 文档数据库服务
      • 云搜索服务
      • 数据湖探索
      • 数据仓库服务
      友情链接
      • 中国电信集团
      • 天翼云国际站
      • 189邮箱
      • 天翼企业云盘
      • 天翼云盘
      ©2026 天翼云科技有限公司版权所有 增值电信业务经营许可证A2.B1.B2-20090001
      公司地址:北京市东城区青龙胡同甲1号、3号2幢2层205-32室
      • 用户协议
      • 隐私政策
      • 个人信息保护
      • 法律声明
      备案 京公网安备11010802043424号 京ICP备 2021034386号