§ 为什么建议升级到 GreatSQL 8.0


本节介绍为什么要升级到 GreatSQL 8.0,以及 GreatSQL 8.0 相对 5.7 版本有哪些值得关注的优势特性。

§ GreatSQL 8.0 相对 5.7 的优势特性

GreatSQL 8.0 相对 MySQL 5.7 在性能提升、安全、功能函数、SQL 语法、SQL 优化器等多方面均有提升,以下是各个功能特性和优势特性的详细对比表:

类别 特性 MySQL 5.7 GreatSQL 8.0 改进提升及优势特性
性能 秒级加列 不支持 通过秒级加列功能 有效降低停机时间,提高数据库灵活性
性能 查询优化 基本的查询优化 更多的查询优化技术,如子查询下推、索引合并等 更高效的查询执行计划
性能 并行查询 有限的并行查询支持 支持并行查询 更快的查询响应时间
性能 InnoDB 性能 基本的 InnoDB 性能优化 改进的 InnoDB 性能,如更快的 DDL 操作、更高效的缓存管理 更高的性能和更好的响应时间
性能 Redo 日志优化 基本功能 支持 Redo 日志的并行写入及临时禁用 Redo 更高的事务处理能力
性能 性能模式 基本的性能模式支持 增强的性能模式,支持更多的监控指标 更详细的性能监控
性能 CATS 事务控制算法 基于 FIFO 的事务控制算法 采用 Contention-Aware Transaction Scheduling (CATS) 算法,优先处理等待锁的事务来减少锁争用,提高并发性能 提高事务并发性能,更好的资源利用率
性能 不可见索引 不支持 支持不可见索引 便于性能调优,不影响现有查询
性能 倒序索引 不支持 支持倒序索引 便于性能调优,不影响现有查询
性能 函数索引 不支持 支持函数索引 便于性能调优,不影响现有查询
性能 下推优化 有限的下推优化 更多的下推优化,如 IN / NOT INEXISTS / NOT EXISTS 子查询下推 更高效的查询执行计划
性能 Hash Join 不支持 支持 Hash Join 提升无索引时大表连接性能
性能 更多 Optimze Switch 选项 多个可选开关 支持更多可选开关(如 JOIN_INDEX / ORDER_INDEX),提升 SQL 性能 提升无索引时大表连接性能
数据管理 JSON 支持 基本功能 扩展的 JSON 函数
JSON 表达式索引
JSON 路径表达式
更强大的 JSON 处理能力
数据管理 元数据字典 基于 MyISAM 存储 基于 InnoDB 存储 更安全、高效和一致的元数据字典管理
数据管理 分区表 基本的分区表支持 更多的分区类型(如 LIST COLUMNS 分区)
分区修剪优化
更灵活和高效的分区管理
数据管理 全文索引 仅支持 MyISAM 存储引擎的全文索引 支持 InnoDB 存储引擎的全文索引 更广泛的全文索引支持
数据管理 临时表 基本的临时表支持 支持持久化的临时表 更高效的临时表管理
数据管理 临时表空间 有限的临时表空间支持 支持独立的临时表空间 更高效的临时表管理
数据管理 Clone 插件 不支持 支持本地/远程 CLONE 备份 提高本地/远程备份效率,提高主从复制/MGR 数据复制效率
数据管理 配置参数在线修改持久化 不支持 支持 SET PERSIST 在线修改配置参数并持久化 提高系统管理灵活性
安全性 角色管理 不支持 支持角色管理,简化权限管理 更灵活的权限管理
安全性 密码管理 基本的密码管理 新的密码验证组件,更安全
最小字符数要求
密码历史记录
更强的安全性
安全性 审计 不支持 增强的审计日志功能 更详细的审计和合规性支持
安全性 数据脱敏 不支持 增强的数据脱敏功能 更强的数据脱敏支持和合规性支持
复制 多源复制 有限的多源复制支持 改进的多源复制支持 更灵活的复制拓扑
复制 GTID 基本的 GTID 支持 改进的 GTID 支持,支持并行复制 更可靠的复制管理
复制 事务重放 有限的事务重放支持 支持事务重放,提高恢复效率 更快的恢复时间
SQL 语法 窗口函数 不支持窗口函数 支持窗口函数(如 ROW_NUMBER(), RANK(), LEAD(), LAG() 等) 更复杂的查询和数据分析能力
SQL 语法 公用表表达式 (CTE) 不支持 支持 CTE 更复杂的查询和数据分析能力
SQL 语法 优化器提示 有限的优化器提示支持 支持更多的优化器提示 更精细的查询优化
SQL 语法 字符集和排序规则 有限的字符集和排序规则支持 支持更多的字符集和排序规则
新的默认字符集 utf8mb4
更广泛的字符集支持
SQL 语法 加锁语法 语法相对较为简单 支持 LOCK ... FOR SHARE / NOWAIT / SKIP LOCKED 等多种语法 加锁请求 SQL 语法更灵活,支持更多应用需求场景
SQL 语法 EXPLAIN ANALYZE 语法 不支持 不仅显示查询的执行计划,还能提供实际执行过程中的详细性能数据,包括每个步骤的执行时间和行数 有效提升性能诊断和 SQL 优化效率
SQL 语法 基础语法 语法相对较为简单,缺少许多现代化分析功能 新增了多种优化的 SQL 语法,包括窗口函数、CTE、JSON 处理等 SQL 查询更加灵活高效,支持更复杂的分析和数据操作
基础功能 系统变量 基本的系统变量支持 支持动态修改更多的系统变量 更灵活的配置管理
基础功能 自增列 基本功能 支持自增值持久化,并提高了自增列在主从复制场景下的性能 确保自增列重启安全性,提升了高并发插入时的性能,尤其是在复制环境下
基础功能 GIS 基本功能 支持 GeoJSON,并改进了 GIS 空间索引和函数 提升了对地理空间数据的处理能力
基础功能 DDL 操作原子性 不支持 支持 DDL 操作原子性,DDL 操作是崩溃安全的 在执行 DDL 过程中更安全,避免部分失败
基础功能 Trigger 基础的功能 支持一个表上创建多个触发器 更灵活的触发器用法,提升业务便利性
基础功能 版本升级 手动执行 mysql_upgrade 升级 自动完成升级,且支持利用 MySQL Shell 进行升级前置检查 版本升级更灵活高效
基础功能 资源组 不支持 通过资源组功能,更精确地控制 CPU 资源的分配和使用 为数据库管理和性能优化提供了更强大的工具
GreatSQL 增强 高可用 - MGR 地理标签 不支持 支持利用地理标签提升多机房架构数据可靠性 解决多机房数据同步的问题
GreatSQL 增强 高可用 - MGR 仲裁节点 不支持 仲裁节点无需存储数据,和应用事务日志 可以用更低的服务器成本实现更高可用
GreatSQL 增强 高可用 - MGR 读写节点 VIP 不支持 读写节点可绑定VIP 更方便实现容灾切换方案
GreatSQL 增强 高可用 - MGR 快速单主 不支持 优化单主模式下的事务认证方式 在单主模式下更快,性能更高
GreatSQL 增强 高可用 - MGR 智能选主 不支持 完善自动选主机制,增加基于最新GTID判断来选主,避免自动选择没有最新GTID的节点作为新主 高可用切换选主机制更合理
GreatSQL 增强 高可用 - MGR 优化流控算法 不支持 优化流控算法,综合考虑大事务及认证事务队列因素 避免性能抖动问题
GreatSQL 增强 高可用 - MGR 记录网络开销 不支持 记录 MGR 在网络层的开销 便于进一步分析和提升 MGR 效率
GreatSQL 增强 高可用 - MGR 事务认证队列清理优化 不支持 优化事务认证队列清理效率 避免每 60 秒性能抖动风险
GreatSQL 增强 高可用 - MGR 节点状态异常判断优化 不支持 优化节点状态异常时的检查判断效率 增加系统服务时长
GreatSQL 增强 高可用 - MGR 节点磁盘空间爆满异常处理 不支持 节点磁盘空间爆满时,该节点主动退出 避免因为无法主动退出阻塞 MGR 事务认证
GreatSQL 增强 高可用 - 双主复制防回路机制 不支持 给 binlog 打标签,避免事务回路重复应用 避免双主复制时出现数据回路问题
GreatSQL 增强 高性能 - Rapid 引擎 不支持 支持 大规模并行、基于内存查询、高压缩比的高性能 Rapid 引擎 可将复杂数据分析性能提升几个数量级
GreatSQL 增强 高性能 - InnoDB 事务无锁化优化 不支持 大锁拆分及无锁化等多种优化方案 OLTP 场景整体性能提升约 20%
GreatSQL 增强 高性能 - 并行 LOAD DATA 不支持 并行方式 LOAD DATA 导入数据,针对无显式定义主键场景亦有优化 适用于频繁导入大批量数据的应用场景,性能可提升约 20 多倍
GreatSQL 增强 高性能 - 异步删除大表 不支持 异步方式删除大表 提升 InnoDB 稳定性
GreatSQL 增强 高性能 - 线程池 仅企业版支持 池化方式预分配线程,提升新建连接效率 避免大量短连接时出现性能抖动
GreatSQL 增强 高性能 - 非阻塞式 DDL 不支持 请求 DDL 锁时不再持续阻塞 提升整体业务系统可用性
GreatSQL 增强 高性能 - NUMA 亲和性优化 不支持 通过 NUMA 亲和性调度优化,将前端用户线程和后台线程绑定到固定 NUMA 节点上以提升线程处理性能 TPC-C 性能提升约 10%
GreatSQL 增强 高兼容 / 100% 完全兼容 MySQL 语法,支持大多数常见 Oracle 用法 提升旧业务应用系统迁移效率
GreatSQL 增强 高安全 - 国密算法 只支持通信国密加密 除通信国密加密外,也支持国密表空间加密、备份加密等 确保重要数据的加密安全,满足金融级用安全需求
GreatSQL 增强 高安全 - mysqldump 备份加密 不支持 mysqldump 逻辑备份文件加密 确保重要数据的加密安全,满足金融级用安全需求
GreatSQL 增强 高安全 - Clone 备份加密 不支持 Clone 物理备份文件加密 确保重要数据的加密安全,满足金融级用安全需求
GreatSQL 增强 高安全 - 审计 仅企业版支持 支持审计功能,并将审计日志写入数据表中,并且设置审计日志入表 满足不同的审计需求
GreatSQL 增强 高安全 - 数据脱敏 仅企业版支持 支持基于函数和策略的两种数据脱敏工作方式 保障敏感用户数据查询结果保密性
GreatSQL 增强 高安全 - 记录最后登录信息 不支持 支持记录指定用户的最后一次登入时间,便于管理员查询 提升数据库安全性,避免恶意尝试破解登录风险
GreatSQL 增强 其他 - Clone 压缩备份 不支持 支持 Clone 物理压缩备份 降低备份文件存储成本
GreatSQL 增强 其他 - Clone 增量备份 不支持 支持 Clone 物理增量备份 提升备份可靠性和备份文件恢复效率

§ 升级到 GreatSQL 8.0

想要从 MySQL / GreatSQL 5.7 升级到 GreatSQL 8.0,可以参考文档:GreatSQL 5.7升级到8.0

§ 总结

GreatSQL 8.0 相对于 5.7 在多个方面进行了显著的改进和提升,包括性能、数据管理、安全性、复制、优化器(如不可见索引、函数索引、直方图)、SQL 语法支持(如窗口函数、CTE)等方面。这些改进使得 GreatSQL 8.0 成为一个更强大、更灵活、更安全的数据库管理系统,特别适合处理大规模和高并发的应用场景。

通过这些新特性,用户可以更高效地管理和优化数据库,提高 GreatSQL 数据库的整体可用性、性能、安全性、兼容性和可靠性。

扫码关注微信公众号

greatsql-wx