PolarDB for MySQL menggunakan sistem penomoran versi tiga bagian — Major.Minor.Revision — yang menyediakan peningkatan performa, patch keamanan, dan fitur baru sambil tetap menjaga kompatibilitas penuh dengan versi MySQL komunitas tertentu. Peningkatan ke revisi atau versi utama yang lebih tinggi tidak memerlukan perubahan pada aplikasi.
Format nomor versi
Nomor versi PolarDB mengikuti format Major.Minor.Revision. Sebagai contoh, 8.0.1.1.0 terdiri atas:
| Tingkat | Contoh | Makna |
|---|---|---|
| Major | 8.0 | Generasi fitur utama. Versi utama yang berbeda memiliki perbedaan fitur signifikan. |
| Minor | 8.0.1 | Rilis fitur dalam suatu versi utama. Dipilih saat membuat kluster. |
| Revision | 8.0.1.1.0 | Rilis patch dalam suatu versi minor. Berisi optimasi performa, patch keamanan, dan perbaikan bug. |

Kompatibilitas MySQL
Versi utama yang didukung
| Versi mesin PolarDB | Versi MySQL yang kompatibel |
|---|---|
| 8.0.2 | MySQL 8.0.18 dan sebelumnya |
| 8.0.1 | MySQL 8.0.13 dan sebelumnya |
| 5.7 | MySQL 5.7.28 dan sebelumnya |
| 5.6 | MySQL 5.6.16 dan sebelumnya |
Standar dan protokol
| Standar | Dukungan |
|---|---|
| SQL | ANSI/ISO SQL. Atur parameter sql_mode ke ANSI untuk mengaktifkannya. Lihat Konfigurasikan parameter kluster dan node. |
| ODBC | Open Database Connectivity (ODBC) versi 0 hingga 3.51. |
| JSON | Tipe data JSON native sesuai RFC 7159 dan ECMA-262. Didukung pada versi 5.7 dan 8.0. |
| XML | Fungsi XML standar W3C dan XPath. |
Cara PolarDB menangani sintaks baru
PolarDB mencakup fitur yang tidak tersedia di MySQL standar, seperti indeks GLOBAL. Untuk mencegah fitur ini mengganggu alat replikasi downstream seperti mysqldump atau sinkronisasi binlog, PolarDB secara otomatis membungkus sintaks SQL baru atau yang dimodifikasi dalam komentar berbasis versi.
Format komentarnya adalah:
/*!99990 800020200 Sintaks SQL PolarDB khusus yang didukung >= versi 2.2.0 */Contoh
Contoh 1: SHOW CREATE TABLE
Saat Anda membuat tabel dengan indeks GLOBAL, SHOW CREATE TABLE membungkus kata kunci tersebut dalam komentar berbasis versi:
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;Hasil:
| 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 */ |Contoh 2: mysqldump
mysqldump mempertahankan komentar berbasis versi dalam output-nya. Saat dump tersebut diimpor ke MySQL standar, MySQL diam-diam mengabaikan sintaks khusus PolarDB.
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 */
/*!*/;
......Contoh 3: Sinkronisasi log biner
Contoh ini menyinkronkan log biner dari PolarDB for MySQL 8.0.2.2.0 ke MySQL 8.0.27.
Gunakan Data Transmission Service (DTS) untuk menyinkronkan log biner dari PolarDB for MySQL 8.0.2.2.0 ke MySQL 8.0.27. Untuk detailnya, lihat Dari kluster PolarDB for MySQL ke instans ApsaraDB RDS for MySQL.
Lihat hasil sinkronisasi log biner pada kedua sistem. Contoh hasil pada PolarDB for MySQL 8.0.2.2.0:
Contoh hasil pada MySQL 8.0.27:
Fitur khusus PolarDB tidak muncul dalam hasil MySQL.
Setelah sinkronisasi, fitur khusus PolarDB (seperti indeks GLOBAL) tidak lagi tersedia di sisi MySQL.Menambahkan komentar berbasis versi secara manual untuk pernyataan DDL lainnya
SHOW CREATE TABLE dan mysqldump secara otomatis menambahkan komentar berbasis versi untuk pernyataan CREATE TABLE. Untuk pernyataan DDL lainnya, tambahkan komentar tersebut secara manual:
/*!99990 800020200 Sintaks SQL PolarDB khusus yang didukung >= versi 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 */Periksa versi mesin Anda
Dari konsol:
Masuk ke Konsol PolarDB.
Pada halaman Basic Information kluster Anda, periksa nilai Kernel Version.

Dari SQL:
Hubungkan ke kluster Anda dan jalankan:
show variables like '%polardb_version%';Untuk versi 5.6, gunakan show variables like '%rds_release_date%'; sebagai gantinya.Peningkatan versi mesin
Setiap tingkat versi memiliki jalur peningkatan yang berbeda:
| Tingkat versi | Jalur peningkatan |
|---|---|
| Revision | Upgrade in place. Lihat Peningkatan versi revisi. |
| Minor | Tidak dapat di-upgrade in place. Buat kluster baru dan migrasikan data menggunakan DTS. Contoh: 8.0.1.x → *(kluster baru + DTS)* → 8.0.2.x |
| Major | Lihat Peningkatan versi mesin. Contoh: 5.7 → 8.0 |
Catatan rilis
Untuk daftar lengkap fitur baru, peningkatan, dan perbaikan bug pada setiap versi: