資料庫核心是指資料庫引擎。PolarDB MySQL版包含5.6、5.7和8.0三個大的資料庫核心版本。
PolarDB MySQL版資料庫核心在PolarDB MySQL版架構中的位置如下圖所示。
核心版本組成及關係說明
一個完整的PolarDB MySQL版資料庫核心版本號碼由大版本(DB version)號、小版本(Minor version)號和修訂版本(Revision version)號三者組成,三者間的關係如下所示(以PolarDB MySQL版 8.0版本為例):
大版本號碼是PolarDB MySQL版資料庫核心版本最重要的標識號,一個大版本下通常包含一個或多個小版本,如大版本5.6僅包含一個小版本5.6.16,而大版本8.0包含8.0.1和8.0.2兩個小版本。不同小版本支援的功能差異較大,建議您在購買叢集前先根據業務需要確定適合的小版本號碼。通常情況下,一個小版本下還包含多個修訂版本。修訂版本會對現有功能進行最佳化或改進,或者新增一些功能。同時,小版本和修訂版本均會包含安全、效能等方面的最佳化和改進。
PolarDB MySQL版資料庫核心版本按照大版本維度整體向下相容,高版本包含低版本的全部功能,即當您從低版本升級到高版本後,應用程式不需要做任何修改,完全相容。關於如何升級版本,請參見版本升級。
核心版本的功能更新記錄
每個核心版本都有版本發布日誌,其中列出了適用於各自版本的新功能、增強功能和問題修複。具體請參見:
核心版本相容性說明
PolarDB MySQL版核心相容性說明如下:
相容ANSI/ISO SQL標準,PolarDB MySQL版支援修改SQL相容模式為ANSI,您可以將叢集參數sql_mode修改為ANSI來實現該需求。關於如何修改叢集參數,請參見設定叢集參數和節點參數。
支援0至3.51版本的ODBC。
支援W3C和XPath標準的XML功能。
PolarDB MySQL版5.7和8.0版本支援RFC 7159和ECMAScript標準(ECMA-262)的原生JSON資料類型。
PolarDB MySQL版與社區MySQL版本的相容關係如下表所示:
核心版本 | 完全相容的MySQL小版本 |
8.0.2 | 8.0.18及更低的版本 |
8.0.1 | 8.0.13及更低的版本 |
5.7 | 5.7.28及更低的版本 |
5.6 | 5.6.16及更低的版本 |
PolarDB MySQL版新功能的SQL文法
create table
如果是create table文法,通過show create table文法、mysqldump工具和Binlog日誌同步可以自動添加create table文法,實現自動相容create table。具體說明如下:
通過show create table文法自動添加create table文法。樣本如下:
CREATE TABLE `t1` (c1 int, KEY(c1) GLOBAL) ENGINE=InnoDB PARTITION BY HASH (`c1`) PARTITIONS 4; Query OK, 0 rows affected (0.06 sec) SHOW CREATE TABLE t1; +-------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Table | Create Table | +-------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | t1 | CREATE TABLE `t1` ( `c1` int(11) DEFAULT NULL, KEY `c1` (`c1`) /*!99990 800020207 GLOBAL */ ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci /*!50100 PARTITION BY HASH (`c1`) PARTITIONS 4 */ |
通過mysqldump工具自動添加create table文法。樣本如下:
CREATE TABLE `t1` (c1 int, KEY(c1) GLOBAL) ENGINE=InnoDB PARTITION BY HASH (`c1`) PARTITIONS 4; DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci PARTITION BY HASH (`c1`); --result mysqldump --compact test t1 include/mysqlbinlog.inc /*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/; /*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; DELIMITER /*!*/; ROLLBACK/*!*/; # [empty] # original_commit_timestamp= MICROSECONDS-FROM-EPOCH (YYYY-MM-DD HOURS:MINUTES:SECONDS TZ) # immediate_commit_timestamp= MICROSECONDS-FROM-EPOCH (YYYY-MM-DD HOURS:MINUTES:SECONDS TZ) /*!80001 SET @@session.original_commit_timestamp= MICROSECONDS-FROM-EPOCH*//*!*/; /*!80014 SET @@session.original_server_version= ORIGINAL_SERVER_VERSION*//*!*/; /*!80014 SET @@session.immediate_server_version= IMMEDIATE_SERVER_VERSION*//*!*/; SET @@SESSION.GTID_NEXT= '#'/*!*/; use `test`/*!*/; SET TIMESTAMP=#/*!*/; SET @@session.pseudo_thread_id=#/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/; SET @@session.sql_mode=1168113696/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C utf8mb4 *//*!*/; SET @@session.character_set_client=255,@@session.collation_connection=255,@@session.collation_server=255/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; /*!80011 SET @@session.default_collation_for_utf8mb4=255*//*!*/; /*!80013 SET @@session.sql_require_primary_key=0*//*!*/; CREATE TABLE `t1` ( `c1` int(11) DEFAULT NULL, KEY `c1` (`c1`) /*!99990 800020207 GLOBAL */ ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci /*!50100 PARTITION BY HASH (`c1`) PARTITIONS 4 */ /*!*/; ......通過Binlog日誌同步自動添加create table文法。
本文以建立PolarDB MySQL版8.0.2.2.0版本到MySQL 8.0.27版本的Binlog日誌同步為例進行說明:
通過DTS同步PolarDB MySQL版的Binlog日誌到MySQL。具體請參見PolarDB MySQL版同步至RDS MySQL。
分別在PolarDB MySQL版 8.0.2.2.0版本和MySQL上查看Binlog同步結果。
PolarDB MySQL版同步結果如下:

MySQL同步結果如下:
從上圖可以看到,MySQL這邊的顯示結果中不包含PolarDB MySQL版的新功能。說明PolarDB MySQL版資料同步到MySQL後,MySQL將無法使用PolarDB MySQL版的新功能。
除create table外的其他DDL操作
如果是除create table外的其他DDL操作,需要手動添加PolarDB MySQL版文法相容性comments。具體格式如下:
/*!99990 800020200 Special new PolarDB Syntax SQL supported >= version 2.2.0 */樣本如下:
CREATE TABLE `t1` (
`c1` int(11) DEFAULT NULL,
KEY `c1` (`c1`) /*!99990 800020207 GLOBAL */
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
/*!50100 PARTITION BY HASH (`c1`)
PARTITIONS 4 */查詢版本號碼
您可以通過如下方式查看叢集的核心版本資訊:
登入PolarDB控制台,在目的地組群的基本信息頁直接查看内核版本資訊。

您也可以通過
show variables like "%polardb_version%";或show variables like '%rds_release_date%';命令查詢具體的版本號碼。說明PolarDB MySQL版5.6版本叢集僅支援通過
show variables like '%rds_release_date%';命令查詢具體的版本號碼。關於PolarDB MySQL版資料庫引擎版本號碼的詳細說明,請參見核心版本組成及關係說明。
版本升級
DB Version和Minor Version升級
Revision Version升級
關於如何升級Revision Version版本,請參見Revision Version升級。