活动

天翼云最新优惠活动,涵盖免费试用,产品折扣等,助您降本增效!
热门活动
  • 618智算钜惠季 爆款云主机2核4G限时秒杀,88元/年起!
  • 免费体验DeepSeek,上天翼云息壤 NEW 新老用户均可免费体验2500万Tokens,限时两周
  • 云上钜惠 HOT 爆款云主机全场特惠,更有万元锦鲤券等你来领!
  • 算力套餐 HOT 让算力触手可及
  • 天翼云脑AOne NEW 连接、保护、办公,All-in-One!
  • 中小企业应用上云专场 产品组合下单即享折上9折起,助力企业快速上云
  • 息壤高校钜惠活动 NEW 天翼云息壤杯高校AI大赛,数款产品享受线上订购超值特惠
  • 天翼云电脑专场 HOT 移动办公新选择,爆款4核8G畅享1年3.5折起,快来抢购!
  • 天翼云奖励推广计划 加入成为云推官,推荐新用户注册下单得现金奖励
免费活动
  • 免费试用中心 HOT 多款云产品免费试用,快来开启云上之旅
  • 天翼云用户体验官 NEW 您的洞察,重塑科技边界

智算服务

打造统一的产品能力,实现算网调度、训练推理、技术架构、资源管理一体化智算服务
智算云(DeepSeek专区)
科研助手
  • 算力商城
  • 应用商城
  • 开发机
  • 并行计算
算力互联调度平台
  • 应用市场
  • 算力市场
  • 算力调度推荐
一站式智算服务平台
  • 模型广场
  • 体验中心
  • 服务接入
智算一体机
  • 智算一体机
大模型
  • DeepSeek-R1-昇腾版(671B)
  • DeepSeek-R1-英伟达版(671B)
  • DeepSeek-V3-昇腾版(671B)
  • DeepSeek-R1-Distill-Llama-70B
  • DeepSeek-R1-Distill-Qwen-32B
  • Qwen2-72B-Instruct
  • StableDiffusion-V2.1
  • TeleChat-12B

应用商城

天翼云精选行业优秀合作伙伴及千余款商品,提供一站式云上应用服务
进入甄选商城进入云市场创新解决方案
办公协同
  • WPS云文档
  • 安全邮箱
  • EMM手机管家
  • 智能商业平台
财务管理
  • 工资条
  • 税务风控云
企业应用
  • 翼信息化运维服务
  • 翼视频云归档解决方案
工业能源
  • 智慧工厂_生产流程管理解决方案
  • 智慧工地
建站工具
  • SSL证书
  • 新域名服务
网络工具
  • 翼云加速
灾备迁移
  • 云管家2.0
  • 翼备份
资源管理
  • 全栈混合云敏捷版(软件)
  • 全栈混合云敏捷版(一体机)
行业应用
  • 翼电子教室
  • 翼智慧显示一体化解决方案

合作伙伴

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

开发者

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

支持与服务

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

了解天翼云

天翼云秉承央企使命,致力于成为数字经济主力军,投身科技强国伟大事业,为用户提供安全、普惠云服务
品牌介绍
  • 关于天翼云
  • 智算云
  • 天翼云4.0
  • 新闻资讯
  • 天翼云APP
基础设施
  • 全球基础设施
  • 信任中心
最佳实践
  • 精选案例
  • 超级探访
  • 云杂志
  • 分析师和白皮书
  • 天翼云·创新直播间
市场活动
  • 2025智能云生态大会
  • 2024智算云生态大会
  • 2023云生态大会
  • 2022云生态大会
  • 天翼云中国行
天翼云
  • 活动
  • 智算服务
  • 产品
  • 解决方案
  • 应用商城
  • 合作伙伴
  • 开发者
  • 支持与服务
  • 了解天翼云
      • 文档
      • 控制中心
      • 备案
      • 管理中心
      文档中心

      关系数据库MySQL版

      关系数据库MySQL版

        • 产品动态
        • 产品简介
        • 产品定义
        • 产品优势
        • 功能特性
        • 关系型数据库的常用概念
        • 什么是专属云关系型数据库
        • 关系型数据库的产品系列
        • 产品类型简介
        • 产品功能对比
        • 实例说明
        • 数据库实例类型
        • 数据库实例规格
        • 数据库引擎和版本
        • 数据库实例状态
        • RDS应用场景
        • 约束与限制
        • 关系型数据库相关术语解释
        • 与其他服务依赖关系
        • 计费说明
        • 公有云数据库产品价格
        • 专属云数据库产品价格
        • 计费项
        • 计费方式
        • 包年包月
        • 按需计费
        • 备份计费规则
        • 购买
        • 续费
        • 到期与欠费
        • 变更配置
        • 退订
        • 快速入门
        • 实例连接方式介绍
        • 通过内网连接MySQL实例
        • 概述
        • 步骤一:创建实例
        • 步骤二:设置安全组规则
        • 步骤三:通过内网连接MySQL实例
        • 通过公网连接MySQL实例
        • 概述
        • 步骤一:创建实例
        • 步骤二:设置安全组规则
        • 步骤三:绑定弹性IP
        • 步骤四:通过公网连接MySQL实例
        • 用户指南
        • 使用规范
        • 实例使用规范
        • 数据库使用规范
        • 连接实例
        • 连接RDS for MySQL实例的方式
        • 通过DAS连接RDS for MySQL实例
        • 使用MySQL命令行内网连接实例
        • 使用MySQL命令行公网连接实例
        • 通过图形化界面连接RDS for MySQL实例
        • 安装MySQL客户端
        • 数据库迁移实例
        • 使用mysqldump迁移RDS for MySQL数据
        • 使用DAS的导出和导入功能迁移RDS for MySQL数据
        • 参数调优
        • 实例管理
        • 购买与原实例相同配置的数据库实例
        • 修改实例备注
        • 修改实例名称
        • 升级内核小版本
        • 切换主备实例的可用性策略
        • 变更实例的CPU和内存规格
        • 手动扩容磁盘
        • 设置磁盘自动扩容
        • 重启实例
        • 设置可维护时间段
        • 手动切换主备实例
        • 自定义列表项
        • 导出实例
        • 删除按需实例
        • 单机转主备实例
        • 修改数据库同步方式
        • 按需转包周期
        • 回收站
        • 只读实例
        • 只读实例简介
        • 创建只读实例
        • 管理只读实例
        • 备份与恢复
        • 备份概述
        • 备份原理及方案
        • 设置跨区域备份策略
        • 设置自动备份策略
        • 查看并导出备份信息
        • 创建手动备份
        • 下载备份文件
        • 下载Binlog备份文件
        • 使用mysqlbinlog工具查看Binlog备份文件
        • 设置MySQL本地Binlog
        • 恢复备份
        • 将数据库实例恢复到指定时间点
        • 通过表级时间点恢复备份
        • 恢复到自建MySQL数据库
        • 复制备份
        • 删除手动备份
        • 参数管理
        • 修改RDS实例参数
        • MySQL参数调优建议
        • 创建参数模板
        • 编辑参数模板
        • 导出参数模板
        • 比较参数模板
        • 查看参数修改历史
        • 复制参数模板
        • 重置参数模板
        • 应用参数模板
        • 查看参数模板应用记录
        • 修改参数模板描述
        • 删除参数模板
        • 连接管理
        • 配置和修改内网地址
        • 绑定和解绑弹性公网IP
        • 修改数据库端口
        • 设置安全组规则
        • 数据库代理(读写分离)
        • 读写分离简介
        • 数据库代理计费说明
        • 开通读写分离
        • 设置延时阈值
        • 修改读写分离地址
        • 变更数据库代理的规格
        • 关闭读写分离
        • 系统权重分配规则
        • 测试读写分离效果
        • 数据库管理
        • 创建数据库
        • 修改数据库备注
        • 授权
        • 删除
        • 开启或关闭事件定时器
        • 账号管理(非管理员权限)
        • 创建数据库用户
        • 重置密码
        • 修改数据库账号权限
        • 删除
        • 数据安全性
        • 重置管理员密码
        • 修改实例内网安全组
        • 解绑弹性公网IP外部链接
        • 使用最新版本数据库
        • 使用数据库安全服务
        • 监控与告警
        • 支持的监控指标
        • 设置告警规则
        • 查看监控指标
        • 日志管理
        • 查看错误日志
        • 查看慢日志
        • 开启SQL审计日志
        • 下载SQL审计日志
        • 任务中心
        • 查看任务
        • 删除任务
        • 最佳实践
        • MySQL读写分离
        • 最佳实践概述
        • 前提条件
        • 资源规划
        • 方案正文
        • 自建MySQL迁移上云
        • 最佳实践概述
        • 前提条件
        • 资源规划
        • 方案正文
        • 安全白皮书
        • 安全白皮书
        • 性能白皮书
        • 测试方法
        • 测试环境
        • 测试工具
        • 测试步骤
        • 测试模型
        • 测试指标
        • MySQL 5.6测试结果
        • MySQL 5.7测试结果
        • MySQL 8.0测试结果
        • 常见问题
        • 通用类
        • 资源及磁盘管理类
        • 连接类
        • 数据库权限类
        • 数据库存储类
        • 备份与恢复类
        • 计费类
        • 购买类
        • 操作类
        • 性能类
        • 视频专区
        • 文档下载
        • 相关协议
        • 天翼云关系型数据库服务协议
        • 关系型数据库服务等级协议
          无相关产品

          本页目录

          帮助中心关系数据库MySQL版用户指南使用规范数据库使用规范
          数据库使用规范
          更新时间 2024-08-29 23:46:54
          • 新浪微博
          • 微信
            扫码分享
          • 复制链接
          最近更新时间: 2024-08-29 23:46:54
          分享文章
          • 新浪微博
          • 微信
            扫码分享
          • 复制链接
          本章节会介绍Mysql数据库的使用规范

          数据库命名规范

          • 所有的数据库对象名称(包括库名、表名、列名等)建议以小写字母命名,每个单词之间用下划线分割。
          • 所有的数据库对象名称禁止使用RDS for MySQL保留关键字。
          1. MySQL官方保留字与关键字(MySQL 8.0):https://dev.mysql.com/doc/refman/8.0/en/keywords.html
          2. MySQL官方保留字与关键字(MySQL 5.7):https://dev.mysql.com/doc/refman/5.7/en/keywords.html
          • 数据库对象的命名要能做到见名知意,并且不超过32个字符。
          • 数据库中用到的临时表以“tmp”为前缀并以日期为后缀。
          • 数据库中用到的备份表以“bak”为前缀并以日期为后缀。
          • 在不同的库或表中,要保证所有存储相同数据的列名和列类型必须一致。

          数据库基本设计规范

          • 所有表如果没有特殊需求,都要使用InnoDB存储引擎。InnoDB存储引擎支持事务、行级锁、具有更好的恢复性、高并发下性能更强。
          • 数据库和表的字符集统一使用UTF8字符集,避免由于字符集的转换产生乱码。
          • 所有的表和字段都需要添加注释。使用comment从句添加表和列的备注,从设计初期维护好数据字典。
          • 控制单表数据量的大小,建议表中单行长度不得超过1024字节,单表数据量控制在500万行以内。可以采用历史数据归档(常见于日志表)和分库分表的方式控制单表数据的大小。
          • 谨慎使用RDS for MySQL分区表,避免跨分区查询,否则查询效率会降低。分区表在逻辑上表现为一个表,但是在物理层面上将数据存储在多个文件。
          • 表中的列不要太多,尽量做到冷热数据分离,减小表的宽度,以便在一页内存中容纳更多的行,进而减少磁盘IO,更有效的利用缓存。
          • 经常一起使用的列尽量放到一个表中,避免过多的关联操作。
          • 禁止在表中建立预留字段,否则修改列的类型会导致锁表,修改一个字段类型的成本要高于增加一个字段。
          • 禁止在数据库中存储图片、文件等大的二进制数据。

          数据库字段设计规范

          • 控制单表字段数量,字段上限50左右。
          • 优先为表中的每一列选择符合存储需要的最小的数据类型。优先考虑数字类型,其次为日期或二进制类型,最后是字符类型。列的字段类型越大,建立索引占据的空间就越大,导致一个页中的索引越少,造成IO次数增加,从而影响性能。
          • 整数型选择能符合需求的最短列类型,如果为非负数,声明需是无符号(UNSIGNED)类型。
          • 每个字段尽可能具有NOT NULL属性,int等数字类型默认值推荐给0,varchar等字符类型默认值给空字符串。
          • 避免使用ENUM类型,可以用TINYINT类型替换。
          1. 修改ENUM值需要使用ALTER语句,ENUM类型的ORDER BY操作效率低,需要额外操作。
          2. 如果定义了禁止ENUM的枚举值是数值,可使用其他数据类型(如char类型)。
          • 实数类型使用DECIMAL,禁止使用FLOAT和DOUBLE类型。FLOAT和DOUBLE在存储的时候,存在精度损失的问题,很可能在值的比较时,得到错误的结果。
          • 使用datetime、timestamp类型来存储时间,禁止使用字符串替代。
          • 使用数字类型INT UNSIGNED存储IP地址,用INET_ATON、INET_NTOA可以在IP地址和数字类型之间转换。
          • VARCHAR类型的长度应该尽可能短。VARCHAR类型虽然在硬盘上是动态长度的,但是在内存中占用的空间是固定的最大长度。
          • 使用VARBINARY存储大小写敏感的变长字符串,VARBINARY默认区分⼤小写,没有字符集概念,速度快。

          数据库索引设计规范

          • 每个InnoDB表强烈建议有一个主键,且不使用更新频繁的列作为主键,不使用多列主键。不使用UUID、MD5、字符串列作为主键。最好选择值的顺序是连续增长的列作为主键,所以建议选择使用自增ID列作为主键。
          • 限制每张表上的索引数量,建议单张表索引不超过5个。索引并不是越多越好,索引可以提高查询的效率,但会降低写数据的效率。有时不恰当的索引还会降低查询的效率。
          • 禁止给表中的每一列都建立单独的索引。设计良好的联合索引比每一列上的单独索引效率要高出很多。
          • 建议在下面的列上建立索引:
          1. 在SELECT,UPDATE,DELETE语句的WHERE从句上的列。
          2. 在ORDER BY,GROUP BY,DISTINCT上的列。
          3. 多表JOIN的关联列。
          • 索引列顺序:
          1. 区分度最高的放在联合索引的最左侧。区分度=列中不同值的数量/列的总行数。
          2. 尽量把字段长度小的列放在联合索引的最左侧。因为字段长度越小,一页能存储的数据量越大,IO性能也就越好。
          3. 使用最频繁的列放到联合索引的左侧。这样可以比较少的建立一些索引。
          • 避免冗余的索引,如:primary key(id),index(id),unique index(id)
          • 避免重复的索引,如:index(a,b,c),index(a,b),index(a),重复的和冗余的索引会降低查询效率,因为RDS for MySQL查询优化器会不知道该使用哪个索引。
          • 在VARCHAR字段上建立索引时,需指定索引长度,没必要对全字段建立索引,根据实际文本区分度决定索引长度即可。一般对字符串类型数据,长度为20的索引,区分度会高达90%以上,可以使用 count(distinct left(列名, 索引长度))/count(*) 的区分度来确定。
          • 对于频繁查询优先考虑使用覆盖索引。覆盖索引指包含了所有查询字段的索引,不仅仅是WHERE从句GROUP BY从句中的列,也包含SELECT查询的列组合,避免InnoDB表进行索引的二次查询。
          • 外键约束:建立外键关系的对应列的字符集必须保持一致或者存在外键关系的子表父表的字符集保持一致。

          数据库SQL开发规范

          • 在程序中,建议使用预编译语句进行数据库操作。预编译只编译一次,以后在该程序中就可以调用多次,比SQL效率高。
          • 避免数据类型的隐式转换,隐式转换会导致索引失效。禁止在where从句中对列进行函数转换和计算,会导致索引失效。
          • 避免使用双%号或前置%号的查询条件,这样无法利用到索引。
          • 禁止在查询中使用 select * 语句。原因如下:
          1. 使用 select * 会消耗更多的CPU和IP以及网络带宽资源。
          2. 使用 select * 无法使用覆盖索引。
          3. 不使用 select * 可以减少表结构变更对代码带来的影响。
          • 避免使用子查询,子查询会产生临时表,临时表没有任何索引,数据量大时严重影响效率。建议把子查询转化成关联查询。
          • 避免使用JOIN关联太多的表,建议不要超过5个表的JOIN操作。需要JOIN的字段,数据类型必须绝对一致。每JOIN一个表会多占用一部分内存(由“join_buffer_size”控制),会产生临时表操作,影响查询效率。避免使用自然连接(natural join)。
          • 尽量减少同数据库的交互次数,数据库更适合处理批量操作。
          • 使用IN代替OR IN操作可以有效的利用索引,IN的值不要超过500个。
          • 不使用反向查询,如:NOT IN、NOT LIKE
          • 禁止使用 ORDER BY RAND() 进行随机排序。该操作会把表中所有符合条件的数据装载到内存中进行排序,消耗大量的CPU和IO及内存资源。推荐在程序中获取一个随机值,然后根据随机值从数据库获取数据。
          • 在不需要去重的情况下,要使用UNION ALL代替UNION。UNION ALL不需要对结果集再进⾏行排序。
          • 合并多个相同操作到一起,可以提高处理效率,数据库更适合处理批量操作。通过批量操作减少同数据库交互次数。
          • 超过100万行的批量写操作,要分批多次进行操作。大批量写操作可能会造成严重的主从延迟。
          • 如果有ORDER BY的场景,请注意利用索引的有序性。ORDER BY最后的字段是组合索引的一部分,并且放在索引组合顺序的最后。避免出现file_sort的情况,影响查询性能。正例: where a=? and b=? order by c; ,索引:a_b_c反例:索引中有范围查找,那么索引有序性无法利用,如: WHERE a>10 ORDER BY b; ,索引a_b无法排序。
          • 尽量使用ANSI SQL标准语法进行DML操作,而不是用MySQL扩展的SQL语法。常见的MySQL扩展SQL语法有:
          1. REPLACE INTO
          2. INSERT ... ON DUPLICATE KEY UPDATE
          • 不建议使用存储过程,存储过程难以调试和扩展,更没有移植性。
          • 不建议使用触发器,事件调度器(event scheduler)和视图实现业务逻辑,这些业务逻辑应该在业务层处理,避免对数据库产生逻辑依赖。
          • 不建议使用大事务,业务允许的情况下,事务里包含SQL语句越少越好,尽量不超过5个。因为过长的事务会导致锁数据较久,以及MySQL内部缓存、连接消耗过多等问题。
          • TRUNCATE TABLE比DELETE速度快,且使用的系统和日志资源少,如果删除的表上没有TRIGGER,且进行全表删除,建议使用TRUNCATE TABLE。
          文档反馈

          建议您登录后反馈,可在建议与反馈里查看问题处理进度

          鼠标选中文档,精准反馈问题

          选中存在疑惑的内容,即可快速反馈问题,我们会跟进处理

          知道了

          上一篇 :  实例使用规范
          下一篇 :  连接实例
          搜索 关闭
          ©2025 天翼云科技有限公司版权所有 增值电信业务经营许可证A2.B1.B2-20090001
          公司地址:北京市东城区青龙胡同甲1号、3号2幢2层205-32室
          备案 京公网安备11010802043424号 京ICP备 2021034386号
          ©2025天翼云科技有限公司版权所有
          京ICP备 2021034386号
          备案 京公网安备11010802043424号
          增值电信业务经营许可证A2.B1.B2-20090001
          用户协议 隐私政策 法律声明