云数据库 MySQL
  • 产品发布记录
  • 新手引导
  • 产品简介

    • 产品概述
    • 产品优势
    • 应用场景
    • 数据库架构
    • 功能差异列表
    • 产品实例

      • 数据库版本
        • MySQL 5.6 特性
        • MySQL 5.7 特性
        • MySQL 8.0 特性
      • 数据库账号权限
    • 区域与虚拟数据中心
  • 购买指南

  • 操作指南

  • 最佳实践

  • 性能白皮书
  • 故障处理

  • API文档

  • 常见问题

  • 服务条款
  • 词汇表
  • 联系我们
  • MySQL
  • 产品简介
  • 产品实例
云数据库 MySQL

云数据库 RDS MySQL 是首云基于高性能 SSD 存储、高性能云主机和开源数据库 MySQL 打造的一款稳定可靠、可弹性伸缩的关系型数据库。提供了容灾、备份恢复、账户权限、监控告警等一系列等功能。方便您轻松自由地管理数据库。

  • 产品简介
    • 产品概述

    • 产品优势

    • 应用场景

    • 数据库架构

    • 功能差异列表

    • 产品实例

    • 区域与虚拟数据中心

  • 购买指南
    • 计费概述

    • 购买方式

    • 欠费说明

    • 退费说明

    • 调整实例费用说明

    • 备份空间收费说明

  • 操作指南
    • 使用限制

    • 操作总览

    • 管理实例

    • 只读实例

    • 账号管理

    • 数据库管理

    • 参数配置

    • 备份恢复

    • 监控报警

    • 标签管理

    • 慢日志下载

  • 最佳实践
    • 云数据库MySQL使用规范

    • 配置自动重连

    • MyISAM转换InnoDB引擎限制

    • 在线修改大表结构

    • 使用物理备份恢复至自建数据库

    • 使用逻辑备份恢复至自建数据库

  • 故障处理
    • 连接相关

    • 性能相关

    • MySQL修改密码策略

  • API文档
    • 认证方式

    • API概览

    • 实例相关接口

    • 账号相关接口

    • 备份相关接口

    • 只读实例相关接口

    • 监控相关接口

    • 参数相关接口

    • 错误码

  • 常见问题
    • 计费相关

    • 数据库备份相关

    • 数据库恢复相关

    • 连接登录

    • 参数修改

    • 账号权限

    • 性能内存

    • 功能特性

    • 控制台相关

数据库版本

最后更新时间:2021-12-03 生成PDF文件 | 前往GitHub编辑

目前云数据库 MySQL 支持以下版本:MySQL 5.6、MySQL 5.7、MySQL 8.0,各版本的特性请参考 官方文档 (opens new window)。

# MySQL 5.6 特性

  • GTID 复制
  • 无损复制
  • 延迟复制
  • 基于库级别的并行复制
  • mysqlbinlog 可远程备份 binlog
  • 对 TIME, DATETIME 和 TIMESTAMP 进行了重构,可支持小数秒。DATETIME 的空间需求也从之前的 8 个字节减少到 5 个字节
  • Online DDL。ALTER操作不再阻塞DML
  • 可传输表空间(transportable tablespaces)
  • 统计信息的持久化。避免主从之间或数据库重启后,同一个SQL的执行计划有差异
  • 全文索引
  • InnoDB Memcached plugin
  • EXPLAIN 可用来查看 DELETE,INSERT,REPLACE,UPDATE 等 DML 操作的执行计划,在此之前,只支持 SELECT 操作
  • 分区表的增强,包括最大可用分区数增加至 8192,支持分区和非分区表之间的数据交换,操作时显式指定分区
  • Redo Log 总大小的限制从之前的 4G 扩展至 512G
  • Undo Log 可保存在独立表空间中,因其是随机 IO,更适合放到 SSD 中。但仍然不支持空间的自动回收
  • 可 dump 和 load Buffer pool 的状态,避免数据库重启后需要较长的预热时间
  • InnoDB 内部的性能提升,包括拆分 kernel mutex,引入独立的刷新线程,可设置多个 purge 线程
  • 优化器性能提升,引入了 ICP,MRR,BKA 等特性,针对子查询进行了优化

# MySQL 5.7 特性

  • 组复制
  • InnoDB Cluster
  • 多源复制
  • 增强半同步(AFTER_SYNC)
  • 基于 WRITESET 的并行复制
  • 在线开启 GTID 复制
  • 在线设置复制过滤规则
  • 在线修改 Buffer pool 的大小
  • 在同一长度编码字节内,修改 VARCHAR 的大小只需修改表的元数据,无需创建临时表
  • 可设置 NUMA 架构的内存分配策略(innodb_numa_interleave)
  • 透明页压缩(Transparent Page Compression)
  • UNDO 表空间的自动回收
  • 查询优化器的重构和增强
  • 可查看当前正在执行的 SQL 的执行计划(EXPLAIN FOR CONNECTION)
  • 引入了查询改写插件(Query Rewrite Plugin),可在服务端对查询进行改写
  • EXPLAIN FORMAT = JSON 会显示成本信息,这样可直观的比较两种执行计划的优劣
  • 引入了虚拟列,类似于 Oracle 中的函数索引
  • 新实例不再默认创建 test 数据库及匿名用户
  • 引入 ALTER USER 命令,可用来修改用户密码,密码的过期策略,及锁定用户等
  • mysql.user 表中存储密码的字段从 password 修改为 authentication_string
  • 表空间加密
  • 优化了 Performance Schema,其内存使用减少
  • Performance Schema 引入了众多 instrumentation 。常用的有Memory usage instrumentation,可用来查看 MySQL 的内存使用情况,Metadata Locking Instrumentation,可用来查看 MDL 的持有情况,Stage Progress instrumentation,可用来查看 Online DDL 的进度
  • 同一触发事件(INSERT,DELETE,UPDATE),同一触发时间(BEFORE,AFTER),允许创建多个触发器。在此之前,只允许创建一个触发器
  • InnoDB 原生支持分区表,在此之前,是通过 ha_partition 接口来实现的
  • 分区表支持可传输表空间特性
  • 集成了 SYS 数据库,简化了 MySQL 的管理及异常问题的定位
  • 原生支持 JSON 类型,并引入了众多 JSON 函数
  • 引入了新的逻辑备份工具 - mysqlpump,支持表级别的多线程备份
  • 引入了新的客户端工具 - mysqlsh,其支持三种语言:JavaScript, Python and SQL。两种 API:X DevAPI,AdminAPI,其中,前者可将 MySQL 作为文档型数据库进行操作,后者用于管理InnoDB Cluster
  • mysql_install_db 被 mysqld --initialize 代替,用来进行实例的初始化
  • 原生支持 systemd
  • 引入了 super_read_only 选项
  • 可设置 SELECT 操作的超时时长(max_execution_time)
  • 可通过 SHUTDOWN 命令关闭 MySQL 实例
  • 引入了 innodb_deadlock_detect 选项,在高并发场景下,可使用该选项来关闭死锁检测
  • 引入了 Optimizer Hints,可在语句级别控制优化器的行为,如是否开启 ICP,MRR 等,在此之前,只有 Index Hints
  • GIS 的增强,包括使用 Boost.Geometry 替代之前的 GIS 算法,InnoDB 开始支持空间索引

# MySQL 8.0 特性

  • 引入了原生的,基于 InnoDB 的数据字典。数据字典表位于 mysql 库中,对用户不可见,同mysql 库的其它系统表一样,保存在数据目录下的 mysql.ibd 文件中。不再置于 mysql 目录下
  • Atomic DDL
  • 重构了 INFORMATION_SCHEMA,其中,部分表已重构为基于数据字典的视图,在此之前,其为临时表
  • PERFORMANCE_SCHEMA 查询性能提升,其已内置多个索引
  • 不可见索引(Invisible index)
  • 降序索引
  • 直方图
  • 公用表表达式(Common table expressions)
  • 窗口函数(Window functions)
  • 角色(Role)
  • 资源组(Resource Groups),可用来控制线程的优先级及其能使用的资源,目前,能被管理的资源只有CPU
  • 引入了 innodb_dedicated_server 选项,可基于服务器的内存来动态设置 innodb_buffer_pool_size,innodb_log_file_size 和 innodb_flush_method
  • 快速加列(ALGORITHM=INSTANT)
  • JSON 字段的部分更新(JSON Partial Updates)
  • 自增主键的持久化
  • 可持久化全局变量(SET PERSIST)
  • 默认字符集由 latin1 修改为 utf8mb4
  • 默认开启 UNDO 表空间,且支持在线调整数量(innodb_undo_tablespaces)。在 MySQL 5.7 中,默认不开启,若要开启,只能初始化时设置
  • 备份锁
  • Redo Log 的优化,包括允许多个用户线程并发写入 log buffer,可动态修改 innodb_log_buffer_size 的大小
  • 默认的认证插件由 mysql_native_password 更改为 caching_sha2_password
  • 默认的内存临时表由 MEMORY 引擎更改为 TempTable 引擎,相比于前者,后者支持以变长方式存储 VARCHAR,VARBINARY 等变长字段。从 MySQL 8.0.13 开始,TempTable 引擎支持 BLOB 字段
  • Grant 不再隐式创建用户
  • SELECT ... FOR SHARE 和 SELECT ... FOR UPDATE 语句中引入 NOWAIT 和 SKIP LOCKED 选项,解决电商场景热点行问题
  • 正则表达式的增强,新增了 4 个相关函数,REGEXP_INSTR(),REGEXP_LIKE(),REGEXP_REPLACE(),REGEXP_SUBSTR()
  • 查询优化器在制定执行计划时,会考虑数据是否在 Buffer Pool 中。而在此之前,是假设数据都在磁盘中
  • ha_partition 接口从代码层移除,如果要使用分区表,只能使用 InnoDB 存储引擎
  • 引入了更多细粒度的权限来替代 SUPER 权限,现在授予 SUPER 权限会提示 warning
  • GROUP BY 语句不再隐式排序
  • MySQL 5.7 引入的表空间加密特性可对 Redo Log 和 Undo Log 进行加密
  • information_schema 中的 innodb_locks 和 innodb_lock_waits 表被移除,取而代之的是 performance_schema 中的 data_locks 和 data_lock_waits 表
  • 引入 performance_schema.variables_info 表,记录了参数的来源及修改情况
  • 增加了对于客户端报错信息的统计(performance_schema.events_errors_summary_xxx)
  • 可统计查询的响应时间分布(call sys.ps_statement_avg_latency_histogram())
  • 支持直接修改列名(ALTER TABLE ... RENAME COLUMN old_name TO new_name)
  • 用户密码可设置重试策略(Reuse Policy)
  • 移除 PASSWORD() 函数。这就意味着无法通过 “SET PASSWORD ... = PASSWORD('auth_string') ” 命令修改用户密码
  • 代码层移除 Query Cache 模块,故 Query Cache 相关的变量和操作均不再支持
  • BLOB, TEXT, GEOMETRY 和 JSON 字段允许设置默认值
  • 可通过 RESTART 命令重启 MySQL 实例
功能差异列表
数据库账号权限

← 功能差异列表 数据库账号权限→

最近更新
01
产品发布记录
10-18
02
查询云数据库MySQL实例列表
10-18
03
计费概述
07-26
更多文章>

版权所有 ©2005 - 2024 Capitalonline Data Service Co., Ltd 备案序号:京ICP备06033943号 京公网安备:11010502020343号

北京首都在线科技股份有限公司(总部) 经营许可证:B1.B2-20140358 上海红之盟网络科技有限公司(首都在线全资子公司) 经营许可证:B1-20194861