MySQL兼容性增强
可获得性
本特性自openGauss 3.0.0版本开始引入。
特性简介
本特性主要从以下几方面增强openGauss与MySQL的兼容性(只列举部分典型语法,详情请参见《数据迁移指南》中“MySQL兼容性说明”章节):。
支持用户锁,允许用户通过sql加自定义的锁,可以让多个程序之间完成加锁相关的交互过程,使得客户端从任何位置访问都可以得到一致性的锁视图。
支持建表插入数据时默认记录插入当前时间;更新数据时,如果未指定更新时间,默认显示数据变更的当前时间。
支持设置会话级SQL模式,允许运行时变更、全局变更以及会话内变更。
支持隐藏索引,隐藏索引不会被优化器使用。
支持字段大小写敏感。建表时使用的字段名将保留大小写的信息到系统表中,而真正使用这些列时,忽略大小写。
支持schema级、表级、列级设置和修改默认字符集和排序规则。
支持rand(N)/random_bytes(N)函数。
支持使用ASCII/BINARY作为列属性。
支持使用0x
的方式作为十六进制数输入。
支持MySQL协议兼容,通过MySQL的JDBC driver或者MySQL命令行客户端,直接连接openGauss,通过参数hot_standby、dolphin_hot_standby控制备机的可连接性。
支持B库字符序右模糊匹配时走索引扫描。会将匹配条件转换为大于等于和小于等于两个不等式作为索引条件。
以下特性从6.0.0版本开始引入:
支持restrict模式下删除表时忽略视图和表的依赖,即当以restrict模式删除一个表时,如果一个视图是基于该表创建的,那么删除可以正常执行,该视图会被设为非法状态,查询时直接报错,但可以通过\d,\d+,desc,show create view等命名查看视图状态和创建逻辑。如果已删除的基表被重新创建,与视图所定义的结构一致(或包含),查询视图时会重新构建视图依赖,视图恢复正常状态,可以正常查询到结果。
支持straight_join,在内连接中强制左右表的顺序,以左表驱动右表,而不是以开销大小驱动优化器选择执行顺序。
支持interval内部表达式运算、列引用、预编译绑定参数用法。
performance,shrink关键字降级,从保留关键字降级为非保留关键字。
支持MySQL8.0.28版本及其以下驱动以及工具
支持SSL认证
支持caching_sha2_password认证方式
支持快速认证,新增缓存功能(密码快速认证,不需要SSL通信)
客户价值
通过设置用户锁,对数据、数据结构或者某些字符串进行保护,避免会话之间相互干扰,保证了信息的一致性和安全性。解决了用户业务数据写入与修改时,记录其操作时间戳的问题。通过设置sql模式,可以解决早期版本遗留问题与后期版本的兼容性。通过隐藏索引,可以在不禁用/删除/重建索引的情况下,测试删除某个索引对于查询性能的影响,提升SQL调优的效率。通过支持字段大小写敏感,可以让列名在查询时保持建表时的大小写信息。通过支持schema级、表级、列级设置和修改默认字符集和排序规则,可以让用户根据实际使用场景灵活调整字符集和排序规则。