---
title: "与 MySQL 兼容性对比 | OceanBase 文档中心"
description: 与 MySQL 兼容性对比 本节主要介绍 OceanBase 数据库的 MySQL 模式与原生 MySQL 数据库的兼容性对比信息。 OceanBase 数据库的 MySQL 模式兼容 MySQL 5.6 的绝大部分功能和语法。由于产品架构不同，或者客户需求不大，有些功能并没有被支持。本节主要从以下几方面介绍 Oce…
image: https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*OSPzQ6GUQF4AAAAAQHAAAAgAeiGDAQ/original
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*P8CuR4UJ_FkAAAAAAAAAAAAADiGDAQ/original) OceanBase 数据库分布式版 - V 2.2.77 企业版 LTS

# 与 MySQL 兼容性对比

更新时间：2024-08-01 16:26:37

本节主要介绍 OceanBase 数据库的 MySQL 模式与原生 MySQL 数据库的兼容性对比信息。

OceanBase 数据库的 MySQL 模式兼容 MySQL 5.6 的绝大部分功能和语法。由于产品架构不同，或者客户需求不大，有些功能并没有被支持。本节主要从以下几方面介绍 OceanBase 数据库的 MySQL 模式与原生 MySQL 数据库的不同：

- 数据类型
 - SQL 语法
 - 系统视图
 - 字符集和排序方式
 - 函数与表达式
 - 分区支持
 - 备份恢复
 - 存储引擎
 - 优化器
 - 暂不支持的功能

## 数据类型

OceanBase 数据库支持的数据类型有：

- 数值类型

     - 整数类型：BOOL/BOOLEAN、TINYINT、SMALLINT、MEDIUMINT、INT/INTEGER、BIGINT
     - 定点类型：DECIMAL/NUMERIC
     - 浮点类型：FLOAT、DOUBLE
     - Bit-Value 类型：BIT
 - 日期时间类型

     - DATETIME、TIMESTAMP、DATE、TIME、YEAR
 - 字符类型

     - VARCHAR、VARBINARY、CHAR、BINARY、enum、set
 - 大对象类型

     - TINYTEXT、TINYBLOB、TEXT、BLOB、MEDIUMTEXT、MEDIUMBLOB、LONGTEXT、LONGBLOB

与 MySQL 数据库对比，OceanBase 数据库暂不支持空间数据类型和 JSON 数据类型，其他类别的数据类型支持情况是等于或大于 MySQL 数据库的。

## SQL 语法

**SELECT**

- 支持大部分查询功能，包括支持单、多表查询；支持子查询；支持内连接、半连接以及外连接；支持分组、聚合；常见的概率、线性回归等数据挖掘函数等
 - 支持如下集合操作：

  union、union all、intersect、minus
 - 支持通过如下方式查看执行计划：

  ```sql
  EXPLAIN <SQL Statement>;
  EXPLAIN extended <SQL Statement>

  ```
 - 不支持`SELECT ... FOR SHARE ...`语法

**INSERT**

- 支持单行和多行插入，同时还支持指定分区插入
 - 支持`INSERT INTO ... SELECT ...`语句

**UPDATE**

- 支持单列和多列更新
 - 支持使用子查询
 - 支持集合更新

**DELETE**

- 支持单表和多表删除

**TRUNCATE**

- 支持完全清空指定表

## 系统视图

OceanBase 数据库实现了 information_schema 和 mysql 这两个内部数据库中的大部分视图，但是由于架构不同，OceanBase 数据库并不保证所有视图均能实现以及视图中所有的列含义与 MySQL 相同。

更多系统视图的说明信息请参考《参考指南（MySQL 模式）》文档中 [系统视图](https://www.oceanbase.com/docs/enterprise-oceanbase-database-cn-10000000000375133) 章节。

## 字符集和排序方式

OceanBase 数据库兼容 MySQL 数据库的部分字符集和排序方式，具体支持情况如下：

- OceanBase 数据库支持的字符集有 binary、utf8mb4、gbk、utf16、gb18030。
 - OceanBase 数据库支持的排序方式有 utf8mb4_general_ci、utf8mb4_bin、binary、gbk_chinese_ci、gbk_bin、utf16_general_ci、utf16_bin、utf8mb4_unicode_ci、utf16_unicode_ci、gb18030_chinese_ci、gb18030_bin。

## 函数

与 MySQL 数据库对比，OceanBase 数据库的 MySQL 模式不支持的函数如下：

- 数学函数：COT()、CRC32()、DEGREES()、LN()、LOG()、PI()、RADIANS()
 - 日期时间函数：ADDDATE()、ADDTIME()、DAY()、DAYNAME()、GET_FORMAT()、LOCALTIME()、MAKEDATE()、MAKETIME()、MONTHNAME()、PERIOD_ADD()、QUARTER()、SUBDATE()、TIME_FORMAT()、TIMESTAMP()、UTC_DATE()
 - 字符串函数：BIT_LENGTH()、CHARACTER_LENGTH()、EXPORT_SET()、FROM_BASE64()、LCASE()、LOAD_FILE()、MATCH、OCTET_LENGTH()、RLIKE、SOUNDEX()、SOUNDS LIKE、TO_BASE64()、UCASE()、WEIGHT_STRING()
 - XML函数：ExtractValue()、UpdateXML()
 - 加密和压缩函数：COMPRESS()、RANDOM_BYTES()、SHA1(), SHA()、SHA2()、STATEMENT_DIGEST()、STATEMENT_DIGEST_TEXT()、UNCOMPRESS()、UNCOMPRESSED_LENGTH()、VALIDATE_PASSWORD_STRENGTH()
 - 锁定函数：GET_LOCK()、IS_FREE_LOCK()、IS_USED_LOCK()、RELEASE_ALL_LOCKS()、RELEASE_LOCK()
 - 信息函数：BENCHMARK()、CURRENT_ROLE()、ICU_VERSION()、ROLES_GRAPHML()、SCHEMA()、SESSION_USER()、SYSTEM_USER()、
 - 聚集函数：BIT_AND()、BIT_OR()、BIT_XOR()、JSON_ARRAYAGG()、JSON_OBJECTAGG()、STD()、VAR_POP()、VAR_SAMP()
 - 窗口函数：OceanBase 数据库支持的是 MySQL 数据库的超集， MySQL 数据库的窗口函数都支持。
 - 其他函数：ANY_VALUE()、BIN_TO_UUID()、INET_ATON()、INET_NTOA()、INET6_ATON()、INET6_NTOA()、IS_IPV4()、IS_IPV4_COMPAT()、IS_IPV4_MAPPED()、IS_IPV6()、IS_UUID()、MASTER_POS_WAIT()、NAME_CONST()、UUID_SHORT()、UUID_TO_BIN()

另外，OceanBase 数据库的 MySQL 模式不支持空间分析函数、JSON 函数和性能模式函数。

## 分区支持

OceanBase 数据库与 MySQL 数据库对分区的支持差异如下：

- OceanBase 数据库支持一级分区，模板化和非模板化二级分区；MySQL 数据库不支持非模板化二级分区
 - OceanBase 数据库的二级分区支持 HASH、KEY、RANGE、RANGE COLUMNS、LIST、LIST COLUMNS 分区；MySQL 数据库的二级分区仅支持 HASH分区和 KEY 分区

更多分区的说明及使用请参见《管理员指南》文档中 [分区表和分区索引管理](https://www.oceanbase.com/docs/enterprise-oceanbase-database-cn-10000000000376795) 章节。

## 备份恢复

OceanBase 数据库兼容了部分 MySQL 数据库的备份恢复特性，主要支持情况如下：

- 支持全量备份和增量备份
 - 仅支持热备份，不支持冷备份
 - 不支持租户内部部分数据库和表级的备份恢复
 - 不支持备份数据的有效性验证

## 存储引擎

与 MySQL 数据库基于数据块的 InnoDB 和 MyISAM 引擎不同，OceanBase 数据库使用的是基于 LSM-Tree 架构的存储引擎。

## 优化器

OceanBase 数据库在优化器方面与 MySQL 数据库的区别，主要表现在以下几个方面：

- 查看执行计划的命令

     - 输出的列信息仅包含 ID、OPERATOR、NAME、EST. ROWS 和 COST 以及算子的详细信息
     - 不支持使用`SHOW WARNINGS`显示额外的信息
 - 查看统计信息

     - 不支持执行`ANALYZE TABLE`语句查询数据字典表存储有关列值的直方图统计信息
     - 支持通过内部表`__all_meta_table`查看表统计信息和列统计信息
 - 查询改写优化

     - 支持外联接优化
     - 支持外联接简化
     - 支持块嵌套循环和批量 Key 访问联接
     - 支持条件过滤
     - 支持常量叠算优化
     - 支持 IS NULL 优化 (索引不存储 NULL 值)
     - 支持 ORDER BY 优化
     - 支持 GROUP BY 优化
     - 支持 DISTINCT 消除
     - 支持 LIMIT 下压
     - 支持 Window 函数优化
     - 支持避免全表扫描
     - 支持谓词下压
 - Optimizer Hint 机制

     - 支持联接顺序 Optimizer Hints
     - 支持表级别的 Optimizer Hints
     - 支持索引级别的 Optimizer Hints
     - 语法支持 `INDEX HINT`、`FULL HINT`、`ORDERED HINT` 和 `LEADING HINT` 等。
 - 兼容 MySQL 数据库的并行执行能力包括并行查询、并行复制和并行写入等，且 OceanBase 数据库已经支持并行算子，包括并行聚集，并行联接，并行分组以及并行排序等。
 - OceanBase 数据库还支持计划缓存和预编译，MySQL 数据库并不支持。

更多优化器的详细信息请参见《[SQL 调优指南](https://www.oceanbase.com/docs/enterprise-oceanbase-database-cn-10000000000374910)》。

## 暂不支持的功能

- 暂不支持空间数据类型和 JSON 数据类型
 - 不支持`SELECT ... FOR SHARE ...`语法
 - 不支持空间分析函数、JSON 函数和性能模式函数
 - 对于备份恢复功能，不支持租户内部部分数据库和表级的备份恢复；不支持备份数据的有效性验证
 - 对于优化器，查看执行计划的命令不支持使用`SHOW WARNINGS`显示额外的信息；不支持执行`ANALYZE TABLE`查询数据字典中表存储有关列值的直方图统计信息。

 上一篇 下一篇 ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
