活动

天翼云最新优惠活动,涵盖免费试用,产品折扣等,助您降本增效!
热门活动
  • 安全隔离版OpenClaw NEW OpenClaw云服务器专属“龙虾“套餐低至1.5折起
  • 青云志云端助力计划 NEW 一站式科研助手,海外资源安全访问平台,助力青年翼展宏图,平步青云
  • 云上钜惠 爆款云主机全场特惠,2核4G只要1.8折起!
  • 中小企业服务商合作专区 国家云助力中小企业腾飞,高额上云补贴重磅上线
  • 出海产品促销专区 NEW 爆款云主机低至2折,高性价比,不限新老速来抢购!
  • 天翼云奖励推广计划 加入成为云推官,推荐新用户注册下单得现金奖励
免费活动
  • 免费试用中心 HOT 多款云产品免费试用,快来开启云上之旅
  • 天翼云用户体验官 NEW 您的洞察,重塑科技边界

息壤智算

领先开放的智算服务平台,提供算力、平台、数据、模型、应用“五位一体”智算服务体系,构建全流程的AI基础设施能力
AI Store
  • 算力市场
  • 模型市场
  • 应用市场
  • MCP市场
公共算力服务
  • 裸金属
  • 定制裸金属
训推服务
  • 模型开发
  • 训练任务
  • 服务部署
模型推理服务
  • 模型广场
  • 体验中心
  • 服务接入
应用托管
  • 应用实例
科研助手
  • 科研智能体
  • 科研服务
  • 开发机
  • 并行计算
大模型
  • DeepSeek-V3.1
  • DeepSeek-R1-0528
  • DeepSeek-V3-0324
  • Qwen3-235B-A22B
  • Qwen3-32B
智算一体机
  • 智算一体机
模型适配专家服务
  • 模型适配专家服务
算力服务商
  • 入驻算力服务商

应用商城

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

定价

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

合作伙伴

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

开发者

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

支持与服务

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

了解天翼云

天翼云秉承央企使命,致力于成为数字经济主力军,投身科技强国伟大事业,为用户提供安全、普惠云服务
品牌介绍
  • 关于天翼云
  • 智算云
  • 天翼云4.0
  • 新闻资讯
  • 天翼云APP
基础设施
  • 全球基础设施
  • 信任中心
最佳实践
  • 精选案例
  • 超级探访
  • 云杂志
  • 分析师和白皮书
  • 天翼云·创新直播间
市场活动
  • 2025智能云生态大会
  • 2024智算云生态大会
  • 2023云生态大会
  • 2022云生态大会
  • 天翼云中国行
天翼云
  • 活动
  • 息壤智算
  • 产品
  • 解决方案
  • 应用商城
  • 定价
  • 合作伙伴
  • 开发者
  • 支持与服务
  • 了解天翼云
      • 文档
      • 控制中心
      • 备案
      • 管理中心
      EasyCoding敏捷开发平台_相关内容
      • 基于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
      • 重命名表(RENAME TABLE)
        DRDS支持直接连接DBProxy执行DDL语句,本文为您介绍重命名表的RENAME TABLE语句。 注意 仅V5.1.20.0.13及以后版本的实例,支持使用本文介绍的DDL语句。 语法 目前单条语句仅支持对单个表进行重命名,支持的语法如下: plaintext RENAME TABLE oldtable TO newtable; 参数说明 oldtable:需要重命名的表名,必填 newtable: 重命名后的表名,必填
        来自:
        帮助文档
        分布式关系型数据库
        开发指南
        DDL语法
        管理数据表的DDL语句
        重命名表(RENAME TABLE)
      • 查询命令
        本页介绍了文档数据库服务的主要查询命令。 文档数据库服务主要查询命令有: find():最基本的查询命令,基础语法是:db.collection.find(query, projection)。 query:选择条件,类似于 WHERE 子句。 projection:可选,使用来projection展示查询的字段,类似于SQL的SELECT。通过{ field: 1 }这样的语法可以指定要返回的字段,其中1表示要返回该字段,0表示不返回该字段 。 示例: //查询age20的数据 db.students.find({age: 20}) //查询age20的数据,查询的结果只返回name,不返回id db.students.find({age: 20}, {name: 1, id: 0}) findOne():查找一条数据,会返回第一条匹配到的数据。语法: db.collection.findOne(query, projection) 示例: db.students.findOne({age: 20}) limit() 和 skip():分页查询,limit() 指定数据条数,skip()跳过前几条: db.students.find().limit(5) db.students.find().limit(5).skip(10) // 跳过前10条,返回5条数据 sort():排序。按照一个字段排序,orderly 参数指定排序方式,1为降序,1为升序,默认升序: db.students.find().sort({age:1}) db.students.find().sort({age: 1}) //降序 count(): 统计结果数量: db.collection.find(query).count() 也就是说, 文档数据库服务查询主要通过 find() 和查询条件的组合来实现,在find()中使用limit()、skip()、sort()、count()等方法进行查询控制。 还有一点需要留意,查询的结果,返回的是一个Cursor。Cursor使用完毕后要及时关闭,否则会产生内存堆积。
        来自:
        帮助文档
        文档数据库服务
        开发指南
        文档数据库服务使用规范
        文档数据库服务基础命令规范
        查询命令
      • 动态加载元数据
        DRDS支持使用reload命令来动态重新加载元数据,避免数据丢失的同时,无需重启数据库进程或整个集群,可有效降低对在线服务的影响。 注意 仅V5.1.9.6020.2533及以后版本的实例,支持该功能。 背景信息 DBProxy通过ZooKeeper广播机制同步库表、参数、关联MySQL元数据信息,在网络异常或节点高负载、异地容灾场景下,DBProxy内存可能未完全加载元数据。此时,可通过动态加载元数据能力来为DBProxy重新读取并应用其参数配置或元数据,无需重启DBProxy进程,动态更新集群配置或元数据信息,最大限度地减少对在线服务的影响,避免因重启操作导致服务中断。 使用说明 支持动态加载的DRDS 元数据和对应的命令如下: 加载metadata 支持加载schema(库)、table(表)、sequence(序列)、index(切片索引)元数据 命令如下: plaintext reload metadata [where schema? [and table ?] where table in ('schema1'.'table1',...)] 参数 说明 schema 加载指定schema中所有表或指定表的元数据信息,其中zk function tablerule元数据全量加载,不区分库表。 table 表名。 使用示例: 加载更新序列(sequence) 注意 为保证序列全局唯一递增,reload后的新序列会增加一段余量,余量 2 max(1000, increment) ,即新序列起始值 集群节点序列最大值 + 余量。 命令如下: plaintext reload sequence [where schema? [and sequence?] where sequence in ('schema1'.'sequence',...)] 参数 说明 schema 库名。 sequence 序列名。 使用示例:
        来自:
        帮助文档
        分布式关系型数据库
        开发指南
        动态加载元数据
      • 其他
        本文为您介绍DRDS支持的其他管理命令。 UDAL KILL CONNECTION 'connectionids' ... 语法说明 终止连接 示例 plaintext mysql> UDAL KILL CONNECTION 1; Query OK, 0 rows affected (0.00 sec) UDAL STOP HEARTBEAT 'datanodes' ... FOR 'period' 语法说明 对指定数据库停止心跳,检测一段事件,命令中的参数说明如下: 参数 描述 datanodes 数据节点名称列表 period 停止时间 (Seconds),该参数为可选参数 示例 plaintext mysqI> UDAL STOP HEARTBEAT 'dn1' for '12' Query OK,0 rows affected (0.00 sec) UDAL SWITCH DATASOURCE 'datanodes' ... [ TO 'index' ] 语法说明 切换数据源,命令参数说明如下: 参数 描述 datanodes 数据节点名称列表 index 数据源索引 示例 plaintext mysql> UDAL SWITCH DATASOURCE 'dn1' 'dn2' [ TO '3' ] ; Query OK, 0 rows affected (0.00 sec) UDAL VALIDATE SEQUENCE WHERE SCHEMA 'schema' AND SEQUENCE 'sequence' 语法说明 校验序列是否正常,其中: 命令参数说明如下: 参数 描述 schema 序列所属schema sequence 序列名称 回显参数说明如下: 参数 描述 Status 序列状态,可能值: NORMAL:正常 ERROR:异常 示例 plaintext mysql> UDAL VALIDATE SEQUENCE WHERE SCHEMA 'udaladmin' AND SEQUENCE 'sequdaladminid'; + Status + NORMAL + 1 row in set (0.00 sec)
        来自:
        帮助文档
        分布式关系型数据库
        开发指南
        管理命令
        其他
      • 实用SQL语句
        参数 描述 Schema schema名称 Table table名称 Datanode 所属数据库节点 Table Type table的分片类型 Database 所属节点上的schema
        来自:
        帮助文档
        分布式关系型数据库
        开发指南
        实用SQL语句
      • CHECK
        本文为您介绍DRDS管理命令中的CHECK命令。 UDAL CHECKDB '?' 语法说明 数据库检查 示例 plaintext mysql> UDAL CHECKDB 'udaladmin'; ++ Datanode Result ++ udaladmin success udaladmin09 success udaladmin06 success udaladmin02 success udaladmin04 success udaladmin07 success udaladmin01 success udaladmin08 success udaladmin05 success udaladmin03 success udaladmin10 success ++ 11 rows in set (0.02 sec) UDAL CHECKTABLE '?' 语法说明 数据库表检查 示例 plaintext mysql> UDAL CHECKTABLE 'student'; +++ Datanode Table Result +++ udaladmin09 student success udaladmin06 student success udaladmin02 student success udaladmin04 student success udaladmin07 student success udaladmin01 student success udaladmin08 student success udaladmin03 student success udaladmin05 student success udaladmin10 student success +++ 10 rows in set (0.08 sec) UDAL CHECKMETA CONSISTENT [ WHERE SCHEMA IN ( '?' , ... ) ] 注意 仅V5.1.9.6020.2533及以后版本的实例,支持执行该命令。 语法说明 用于全局元数据一致性校验(集群内元数据一致性校验),即校验ZooKeeper上的库表与底层标准库、分片间结构信息是否一致,用于数据迁移服务DTS容灾场景下,保障数据可用性。 返回信息说明如下: 参数 描述 Scheme 进行元数据一致性校验的库。 Table 进行元数据一致性校验的表。 Result 校验结果,可能值: success:库或者表元数据校验一致。 failed:库或者表元数据校验不一致,如果库不一致,表示库不存在;如果表信息校验不一致,则会返回详细信息。 示例
        来自:
        帮助文档
        分布式关系型数据库
        开发指南
        管理命令
        CHECK
      • RECYCLE_BIN
        本文为您介绍DRDS管理命令中的管理回收站(RECYCLEBIN)的命令。 UDAL RECYCLEBIN SHOW CONFIG 语法说明 查询recyclebin配置信息 示例 plaintext mysql> UDAL RECYCLEBIN SHOW CONFIG; Empty set (0.02 sec) UDAL RECYCLEBIN SET CONFIG [RETAINNUMBER?][,RETAINTYPE?][,DELETETABLE?][,DELETETIME?] 语法说明 设置recyclebin配置 示例 plaintext mysql> UDAL RECYCLEBIN SET CONFIG RETAINNUMBER10; Query OK, 1 row affected (0.03 sec) UDAL RECYCLEBIN RESTORE TABLE WHERE ID ? 语法说明 通过recyclebin恢复表 UDAL RECYCLEBIN PURGE TABLE WHERE ID ? [WITH PHYSICAL DELETE] 语法说明 清除recyclebin中的表,其中,ID ? [物理删除] 示例 plaintext mysql> UDAL RECYCLEBIN PURGE TABLE WHERE ID 4; Query OK, 1 row affected (0.02 sec) UDAL RECYCLEBIN SHOW TABLE 语法说明 查看recyclebin中的表信息 支持的完整语法如下: plaintext UDAL RECYCLEBIN SHOW TABLE [WHERE [ID ?] [[AND] SCHEMAID ?] [[AND] {DELETESTATUS ? DELETESTATUS ! ?} ] [[AND] SCHEMANAME LIKE ?] [[AND] {OBJNAME LIKE ? OBJNAME ?}] [[AND] GMTCREATE > ?] [[AND] GMTCREATE UDAL RECYCLEBIN SHOW TABLE; ++++++++++++++++ Id Clusterid Tenantid Prodinstid Objtype Schemaname Objname Tablescripts Expiretime Deletestatus Gmtcreate Gmtmodify Recycleid Schemaid Deletetime Deletetable ++++++++++++++++ 2 /dbproxycluster/dbproxycluster0000014 6749 5e14029f7 0 ggzdb t1 CREATE TABLE IF NOT EXISTS t1 ( id int(10) NOT NULL, k int(10) NOT NULL DEFAULT '0', c char(120) COLLATE utf8mb4bin NOT NULL DEFAULT '', pad char(60) COLLATE utf8mb4bin DEFAULT NULL, KEY xid (id) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4bin; 20250522 10:06:48 0 20250507 10:06:48 20250507 10:06:48 /dbproxycluster/dbproxycluster0000013714/schemas/schema0000017/recyclebin/table0000014161 /dbproxycluster/dbproxycluster0000014/schemas/schema0000017 0 1 3 /dbproxycluster/dbproxycluster0000014 6749 5e140229f7 0 ggzdb t2 CREATE TABLE IF NOT EXISTS t2 ( id int(10) NOT NULL, k int(10) NOT NULL DEFAULT '0', c char(120) COLLATE utf8mb4bin NOT NULL DEFAULT '', pad char(60) COLLATE utf8mb4bin NOT NULL DEFAULT '', KEY xid (id) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4bin; 20250517 10:16:39 0 20250507 10:16:38 20250507 10:16:38 /dbproxycluster/dbproxycluster0000014/schemas/schema0000017/recyclebin/table0000013 /dbproxycluster/dbproxycluster0000014/schemas/schema0000017 0 1 ++++++++++++++++ 2 rows in set (0.02 sec)
        来自:
        帮助文档
        分布式关系型数据库
        开发指南
        管理命令
        RECYCLE_BIN
      • CREATE
        本文为您介绍DRDS管理命令中管理用户和角色的命令。 UDAL CREATE USER 'user' IDENTIFIED BY 'identified by' SET MANAGECOMMAND managecommand 语法说明 创建、修改或删除DBProxy用户 示例 plaintext mysql> UDAL CREATE USER 'udaladmin02' IDENTIFIED BY xxxxxxx'; Query OK, 0 rows affected (0.33 sec) UDAL CREATE ROLE 'role' COMMENTS 'comments'; 语法说明 创建、修改或删除DBProxy角色 示例 plaintext mysql> UDAL CREATE ROLE 'role'; Query OK, 0 rows affected (0.23 sec)
        来自:
        帮助文档
        分布式关系型数据库
        开发指南
        管理命令
        CREATE
      • BR
        DBProxy支持通过命令行方式来备份ZooKeeper元数据,本文为您介绍相关的ZooKeeper元数据备份命令。 注意 仅V5.1.20.0.13及以后版本的实例,支持执行本文命令。 UDAL BR SHOW CONFIG 语法说明 查看ZooKeeper元数据备份功能相关的参数配置情况。 返回信息说明如下: 参数 描述 enableddlbackupzkmetadata 是否启用执行完DDL语句后自动备份ZooKeeper元数据到实例基础库。 可能值: true:启用,即每次成功执行完DDL语句后,自动触发一次异步备份ZooKeeper元数据到实例基础库。 false:不启用。 默认值:false。 backupzkmetadatalimit 备份ZooKeeper元数据记录的最大值。 可能值:2(不包括1)≤ 该值 ≤ 2147483647之间的正整数。 默认值:50,即默认最多保留50个ZooKeeper元数据备份记录。 注意 当ZooKeeper元数据备份记录超出该参数值时,会在备份前自动清理最旧的备份记录,以节省数据空间。 示例 plaintext mysql> udal br show config; ++ Enableddlbackupzkmetadata Backupzkmetadatalimit ++ false 50 ++ 1 row in set (0.00 sec) UDAL BR SET CONFIG [ENABLEDDLBACKUPZKMETADATA?] [, BACKUPZKMETADATALIMIT?] 语法说明 配置ZooKeeper元数据备份功能相关的配置参数,包括: 参数 描述 ENABLEDDLBACKUPZKMETADATA 是否启用执行完DDL语句后自动备份ZooKeeper元数据到实例基础库。 取值范围: true:启用,即每次成功执行完DDL语句后,自动触发一次异步备份ZooKeeper元数据到实例基础库。 false:不启用。 默认值:false。 BACKUPZKMETADATALIMIT 备份ZooKeeper元数据记录的最大值。 取值范围:2(不包括)≤ 该值 ≤ 2147483647之间的正整数。 默认值:50,即默认最多保留50个ZooKeeper元数据备份记录。 注意 当ZooKeeper元数据备份记录超出该参数值时,会在备份前自动清理最旧的备份记录,以节省数据空间。 示例 plaintext mysql> udal br set config enableddlbackupzkmetadata ON, backupzkmetadatalimit 2; Query OK, 1 row affected (0.06 sec)
        来自:
        帮助文档
        分布式关系型数据库
        开发指南
        管理命令
        BR
      • 字段规范
        本文为您介绍字段规范。 1. 字段类型越短越好(可以用int的则不能用bigint,能用tinyint的不能用int) 满足需求的情况下,字段类型越短,会占用更少的存储空间,更少的磁盘IO和网络IO,更少的MySQL计算空间和APP计算空间。常见的字段类型介绍如下: 2. 尽量不要使用default null,所有的字段尽可能都设定为not null并为其定义默认值: 索引不会包括NULL值。影响索引的统计信息,影响优化器的判断。 复合索引中只要有一列含有NULL值,则该列对于此复合索引将是无效的。 3. 需要多表 join的字段或直接比较的字段,数据类型保持绝对一致。 杜绝隐形转换,比如int同char进行比较,造成效率低下。 4. 当字段的类型为枚举型或布尔型时,建议使用tinyint类型。 5. 一般情况下不允许使用TEXT、BLOG,确实需要则拆分。 本质上说,不是MySQL不适合存储text,而是在太多的情况下我们期望MySQL能够更加高效的提供小数据查询/事务处理。 6. 同理,当varchar字段超过一定长度(256)时,建议拆分。 7. 内容明确,不做变更的类型代码可用枚举类型 8. 关于存储IP地址时字段类型的选择 如果是IPV4地址,存放使用int类型,而不是char(15)。Int只占4个字节,字符型占用16个字节,符合越短越好的原则。另外索引长度降低,检索效率更高。 如果是IPV6地址,请找DBA商量决定如何存储。 9. 关于存储时间字段类型的选择 对时间范围没有要求时,强烈建议采用TIMESTAMP取代DATETIME,因为TIMESTAMP更短(4个字节),而DATETIME占用8个字节 两者区别如下: 时间范围: datetime 以'YYYYMMDD HH:MM:SS'格式检索和显示DATETIME值。支持的范围为'10000101 00:00:00'到'99991231 23:59:59' TIMESTAMP值不能早于1970或晚于2037 存储方式: TIMESTAMP1.4个字节储存 2.值以UTC格式保存 3.时区转化,存储时对当前的时区进行转换,检索时再转换回当前的时区。datetime 1.8个字节储存 2.实际格式储存 3.与时区无关
        来自:
        帮助文档
        分布式关系型数据库
        开发指南
        SQL调优指南
        SQL基础规范
        字段规范
      • 数据表规范
        本文为您介绍数据表规范。 1. 首先明确规定所有逻辑业务上实现,禁用存储过程,函数,触发器,视图。 2. 统一使用InnoDB存储引擎,系统已指定默认存储引擎为innodb,所以创建表时无需再指定存储引擎。InnoDB存储引擎是事务型的存储引擎,支持行锁、MVCC、崩溃恢复、具有更高效的IO,更先进的缓引和写策略。 3. 创建表时要明确定义主键,推荐为int/bigint类型的字段作为主键,如果是自增ID则更为完美。 MySQL INNODB为索引组织表,如果没有显式定义主键,InnoDB会使用表上的唯一索引作为主键,如果这个索引特别长,性能会特别差;如果表上没有唯一索引,MySQL会创建一个6个字节的整型作为隐含的主键,存在被写完而不被察觉的风险,而且性能也不佳。 如果没有显式设置主键,则很多工具无法使用(如online ddl),会让日常的维护工作变得复杂。 自增ID可以用来做分页优化。 自增ID可以减少复制延时。 4. 数据表设计时必须包含日期字段,createitme 和lastupdatetime。 每个表的update语句,必须包含对UpdateTime的更新。 5. 每个数据表中字段数量尽可能少。当表的字段数较多时,建议将表分成两张表,一张作为条件查询表,一张作为详细内容表。 6. 数据表记录数尽可能少,线上单表数据建议不超过2000万行,可以通过分库、分表方式实现。 7. 创建表时,所有表名、字段名都需要添加注释,示例如下: plaintext 创建名为 exampletable 的表 CREATE TABLE exampletable ( id INT AUTOINCREMENT PRIMARY KEY, 主键ID,自增 username VARCHAR(50) NOT NULL, 用户名,不能为空 email VARCHAR(100) UNIQUE, 邮箱,唯一约束 age INT, 年龄,可以为空 createdat TIMESTAMP DEFAULT CURRENTTIMESTAMP 创建时间,默认当前时间 ) ENGINEInnoDB DEFAULT CHARSETutf8mb4; 8. 表字符集统一使用utf8mb4,核对规则为utf8mb4bin,不允许其它字符编码。也不允许在字段里边自己定义字符集,以下为违规示例: plaintext 错误示例:使用 utf8 字符集 CREATE TABLE exampletablewrong ( id INT AUTOINCREMENT PRIMARY KEY, username VARCHAR(50) NOT NULL ) ENGINEInnoDB DEFAULT CHARSETutf8; 错误示例:在字段级别定义字符集 CREATE TABLE exampletablewrong ( id INT AUTOINCREMENT PRIMARY KEY, username VARCHAR(50) CHARACTER SET utf8mb4 COLLATE utf8mb4bin NOT NULL );
        来自:
        帮助文档
        分布式关系型数据库
        开发指南
        SQL调优指南
        SQL基础规范
        数据表规范
      • 时间函数
        函数表达式 函数描述 ADDDATE() Add time values (intervals) to a date value ADDTIME() Add time CURDATE() Return the current date CURRENTDATE() CURRENTDATE Synonyms for CURDATE() CURRENTTIME() CURRENTTIME Synonyms for CURTIME() CURRENTTIMESTAMP() CURRENTTIMESTAMP Synonyms for NOW() CURTIME() Return the current time DATEADD() Add time values (intervals) to a date value DATEFORMAT() Format date as specified DATESUB() Subtract a time value (interval) from a date DATE() Extract the date part of a date or datetime expression DATEDIFF() Subtract two dates DAY() Synonym for DAYOFMONTH() DAYNAME() Return the name of the weekday DAYOFMONTH() Return the day of the month (031) DAYOFWEEK() Return the weekday index of the argument DAYOFYEAR() Return the day of the year (1366) EXTRACT() Extract part of a date FROMDAYS() Convert a day number to a date FROMUNIXTIME() Format UNIX timestamp as a date GETFORMAT() Return a date format string HOUR() Extract the hour LASTDAY() Return the last day of the month for the argument LOCALTIME() LOCALTIME Synonym for NOW() LOCALTIMESTAMP, LOCALTIMESTAMP() Synonym for NOW() MAKEDATE() Create a date from the year and day of year MAKETIME() Create time from hour, minute, second MICROSECOND() Return the microseconds from argument MINUTE() Return the minute from the argument MONTH() Return the month from the date passed MONTHNAME() Return the name of the month NOW() Return the current date and time PERIODADD() Add a period to a yearmonth PERIODDIFF() Return the number of months between periods QUARTER() Return the quarter from a date argument SECTOTIME() Converts seconds to ‘HH:MM:SS’ format SECOND() Return the second (059) STRTODATE() Convert a string to a date SUBDATE() Synonym for DATESUB() when invoked with three arguments SUBTIME() Subtract times SYSDATE() Return the time at which the function executes TIME() Extract the time portion of the expression passed TIMEFORMAT() Format as time TIMETOSEC() Return the argument converted to seconds TIMEDIFF() Subtract time TIMESTAMP( With a single argument, this function returns the date or datetime expression; with two arguments, the sum of the arguments TIMESTAMPADD() Add an interval to a datetime expression TIMESTAMPDIFF() Subtract an interval from a datetime expression UNIXTIMESTAMP() Return a UNIX timestamp UTCDATE() Return the current UTC date UTCTIME() Return the current UTC time UTCTIMESTAMP() Return the current UTC date and time WEEKDAY() Return the weekday index WEEKOFYEAR() Return the calendar week of the date (153) YEAR() Return the year
        来自:
        帮助文档
        分布式关系型数据库
        开发指南
        函数
        时间函数
      • 授权和回收权限的GRANT/REVOKE语句
        REVOKE语句 支持的语法: plaintext 从角色或者用户回收库表权限 [UDAL] REVOKE { 权限列表 ALL } ON { SCHEMA TABLE } '对象名称' FROM { USER ROLE } '授权对象'; 从用户回收授权的角色权限 [UDAL] REVOKE ROLE '角色列表' FROM USER 'username'; 语法说明: 权限列表:填写ALL代表回收所拥有的ALL权限,以及可选回收权限:SELECTDELETEUPDATEINSERTTRUNCATEDECRYPT,当需要同时设置多个权限,用逗号进行隔开,必填 对象名称:当回收库权限时填写库名,当需要回收表权限时填写表名格式为 schemaname.tablename,目前仅支持对单个表或者库进行权限回收,必填 授权对象:填写用户名或者表名,必填 角色列表:回收的角色,可以是多个角色,如果是同时回收多个角色,需要用逗号分开并用单引号或双引号包括起来,必填 username:需要回收权限的用户名,必填 使用示例: plaintext 回收用户test的库权限 UDAL REVOKE ALL ON SCHEMA 'bugtest' FROM USER 'test'; 回收用户test的表权限 UDAL REVOKE SELECT,INSERT ON TABLE 'bugtest.sharding1' FROM USER 'test'; 回收用户test的角色权限 UDAL REVOKE ROLE 'role1, role2' FROM USER 'test'; 回收角色role1的库权限 UDAL REVOKE all on schema 'bugtest' FROM role 'role1'; 回收角色role1的表权限 UDAL REVOKE delete on table 'bugtest.sharding1' FROM role 'role1';
        来自:
        帮助文档
        分布式关系型数据库
        开发指南
        DDL语法
        授权和回收权限的GRANT/REVOKE语句
      • AUTO_INCREMENT
        DRDS支持通过隐式序列功能(创建表时添加AUTOINCREMENT关键字,启用隐式序列功能)为列设置自增属性,能够自动为列填充全局唯一值。 背景信息 什么是隐式序列 在传统的单库环境中,AUTOINCREMENT是用于生成主键自增值的常用机制,能够保证主键在单实例数据库中的唯一性。然而,在分布式数据库DRDS中,数据被分片存储在多个存储节点中,原有的自增机制将无法保证全局唯一性,因此DRDS引入了基于全局序列的隐式序列机制,用于替代传统的AUTOINCREMENT功能。 隐式序列与AUTOINCREMENT的关系 在DRDS中,虽然通过添加AUTOINCREMENT关键字实现自增,但实际不是调用数据库原生的自增逻辑,而是通过隐式的全局序列实现唯一值生成。 注意 隐式序列由系统自动维护,无需用户手动干预。 隐式序列的生命周期 隐式序列由系统在建表时自动创建,并在DROP表时自动删除。 注意 不推荐用户手动创建或删除隐式序列,可能会造成ID冲突或数据一致性问题。 HINT路由下的行为差异 当使用HINT路由 + INSERT语句时,DBProxy无法改写SQL,因此不会自动填充自增ID: 注意 不推荐在需要使用AUTOINCREMENT功能的表中使用HINT路由。 以/+TDDL:node('group1')/ INSERT INTO test(value) VALUES(1); 为例,该命令将直接透传到物理库。若该表中的自增列未显式给值,数据库可能会使用默认值(例如0),若该值不唯一,则会报错(例如Duplicate entry)。
        来自:
        帮助文档
        分布式关系型数据库
        开发指南
        AUTO_INCREMENT
      • 全局序列和全局索引的DDL语句
        本文为您介绍DBProxy全局序列和全局索引的DDL语句。 注意 仅V5.1.20.0.13及以后版本的实例,支持使用本文介绍的DDL语句。 seqop 执行seqop的DDL语句的用户需要有对应的schema的ALL权限,支持执行的语句有三种,以下为执行示例,可以按需修改。 如果忘记seqop DDL语句的语法,可以通过控制台上的序列管理页面查看。 seqop参数的解释: name:序列名称,必要参数 value:对应控制台页面的序列当前值,addseq与alterseq中该项为必要参数 increment:序列步长 max:序列最大值 min:对应控制台页面的序列初始值 isCycle:是否是循环序列 注意 seqop DDL语句的参数顺序必须按照示例的顺序填写。 1. 序列创建语句 plaintext //创建非循环序列 seqop @@addseq name'test1' and value'11321' and increment'10' and max'100000' and isCycle'false'; //创建循环序列 seqop @@addseq name'test2' and value'1001' and increment'1000' and min'1' and max'999999' and isCycle'true'; 用DDL语句创建序列可以设置更丰富的参数,在控制台页面创建序列时仅可填写序列名称、最大值、初始值,且初始值加默认步长必须小于等于最大值。 2. 序列更新语句 plaintext //更新非循环序列 seqop @@alterseq name'test1' set value'11321' and increment'10' and max'100000' and isCycle'false'; //更新循环序列 seqop @@alterseq name'test2' set value'1001' and increment'1000' and min'1' and max'999999' and isCycle'true'; 3. 序列删除语句 plaintext seqop @@deleteseq name‘name’;
        来自:
        帮助文档
        分布式关系型数据库
        开发指南
        DDL语法
        全局序列和全局索引的DDL语句
      • 设置分片规则的DDL语句
        分片算法 设置分片规则时需要使用到分片算法,总共有7种分片算法,如下表所示: 分片算法名称 分片算法ID 算法参数及示例 是否可用于库内分表 取模分片 PartitionByMod 是 字符串hashCode取模分片 PartitionByStringMod 是 枚举分片 PartitionByFileMap mapfile'{"1":"0","2":"1"}' 表示分片键值为1的数据落到第一个分片上,分片键值为2的数据落到第二个分片上 defaultnode'0' 表示分片键值为其它值的数据落到默认第一个分片上 否 时间范围分片 PartitionByDateRange startdate'20180710' 表示开始日期 timeunitlen'1' 表示日期周期 timeunittype'year' 表示时间单位,可选值为[day,week,month,year]之一 库内分片参数:innerstartdate、 innertimeunitlen、innertimeunittype,参数含义与startdate、timeunitlen和timeunittype相同 是 枚举分组取模分片 PartitionByEnumAndMod shardingarea'name'表示分组键字段 mapfile'{"1":"0,1","2":"2,3"}' 表示分组键值为1的数据落到第1和第2个分片,分组键值为2的数据落到第3和第4个分片 defaultnode'0' 表示分组键值为其它的数据落到默认第1个分片 否 枚举分组字符串hashCode取模分片 PartitionByEnumAndStringMod shardingarea'employeeid' 表示分组键字段 mapfile'{"BJ":"0","SH":"1"}' 表示分组键值为BJ的数据落到第1分片,分组键值为SH的数据落到第2个分片 defaultnode'2' 表示分组键值为其它的数据落到默认第3个分片 否 数值类型Range分片 PartitionByIntRange rangevalues'1,10,MAXVALUE' :表示分为3个分片,第一个分片包含小于1的行,第二个分片包含大于等于1小于10的行,第三个分片包含大于等于10的行。 dn'shard1,shard2,shard3' :表示上述三个分片分别位于shard1、shard2和shard3上。 注意 rangevalues必须与dn的元素个数相同 。 dn可省略,表示包含所有shard。
        来自:
        帮助文档
        分布式关系型数据库
        开发指南
        DDL语法
        设置分片规则的DDL语句
      • 1
      • ...
      • 128
      • 129
      • 130
      • 131
      • 132
      • ...
      • 156
      跳转至
      推荐热词
      天翼云运维管理审计系统天翼云云服务平台云服务备份云日志服务应用运维管理云手机云电脑天翼云云hbase数据库电信云大数据saas服务电信云大数据paas服务轻量型云主机天翼云客户服务电话应用编排服务天翼云云安全解决方案云服务总线CSB天翼云服务器配置天翼云联邦学习产品天翼云云安全天翼云企业上云解决方案天翼云产品天翼云视频云存储

      天翼云最新活动

      安全隔离版OpenClaw

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

      青云志云端助力计划

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

      云上钜惠

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

      中小企业服务商合作专区

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

      出海产品促销专区

      爆款云主机低至2折,高性价比,不限新老速来抢购!

      天翼云奖励推广计划

      加入成为云推官,推荐新用户注册下单得现金奖励

      产品推荐

      弹性云主机 ECS

      多活容灾服务

      弹性伸缩服务 AS

      弹性高性能计算 E-HPC

      应用托管

      一站式智算服务平台

      人脸实名认证

      人脸属性识别

      人脸活体检测

      推荐文档

      管理员

      云课堂 第十八课:天翼云函数服务之“Hello,World!”

      • 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号