データベースエンジンは、データベースカーネルとも呼ばれます。 PolarDB for MySQLは、5.6、5.7、8.0のエンジンバージョンを提供します。
次の図は、PolarDB for MySQLアーキテクチャでのデータベースエンジンの位置を示しています。
エンジンバージョンのコンポーネントとその関係
PolarDB for MySQLの完全なエンジンバージョン番号は、メジャーバージョン (DBバージョン) 番号、マイナーバージョン番号、リビジョンバージョン番号の3つの部分で構成されています。 次の図は、PolarDB for MySQLバージョン8.0を例として、3つの部分の関係を示しています。
メジャーバージョン番号は、PolarDB for MySQLデータベースエンジンバージョンのキー識別子です。 ほとんどの場合、メジャーバージョンは1つ以上のマイナーバージョンを含む。 たとえば、メジャーバージョン5.6にはマイナーバージョン5.6.16が1つだけ含まれ、メジャーバージョン8.0にはマイナーバージョン8.0.1と8.0.2が2つ含まれています。 異なるマイナーバージョンの機能は大きく異なる場合があります。 ビジネス要件に基づいてマイナーバージョンを選択します。 ほとんどの場合、マイナーバージョンには複数のリビジョンバージョンがあります。 リビジョンバージョンは、既存の機能を最適化または改善したり、新しい機能を追加したりします。 その後のマイナーバージョンと改訂バージョンは、より強力なセキュリティ保護とより良いパフォーマンスを提供します。
PolarDB for MySQLの後のエンジンバージョンには、以前のバージョンのすべての機能が含まれており、以前のバージョンと完全に下位互換性があります。 したがって、エンジンバージョンのアップグレード後も、変更を加えることなくアプリケーションを引き続き使用できます。 エンジンバージョンをアップグレードする方法の詳細については、「エンジンバージョンの更新」をご参照ください。
エンジンバージョンのリリースノート
Alibaba Cloudは、各エンジンバージョンのリリースノートを提供しています。 リリースノートには、新機能、変更された機能、および修正された問題が含まれます。 詳細については、以下のトピックをご参照ください。
エンジンバージョンの互換性
次のセクションでは、PolarDB for MySQLエンジンバージョンの互換性情報について説明します。
ANSIおよびISO SQL標準に準拠しています。 クラスターのsql_modeパラメーターをANSIに設定して、ANSIセッションモードを有効にできます。 クラスターパラメーターの変更方法の詳細については、「クラスターパラメーターとノードパラメーターの設定」をご参照ください。
0から3.51までのOpen Database Connectivity (ODBC) バージョンをサポートします。
W3CおよびXPath標準に準拠したXML機能をサポートします。
PolarDB for MySQLの5.7および8.0は、RFC 7159およびECMA-262標準に準拠するネイティブJSONデータ型をサポートします。
次の表に、PolarDB for 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 for MySQLの新機能のSQL構文
作成テーブル
PolarDB for MySQLがCREATE TABLEステートメントと互換性があることを確認するには、SHOW CREATE TABLEステートメント、mysqldumpツール、およびバイナリログ同期を使用して、CREATE TABLEステートメントを自動的に追加します。 以下の点にご注意ください。
方法1: SHOW CREATE TABLEステートメントを実行します。 例:
CREATE TABLE 't1' (c1 int, KEY(c1) GLOBAL) ENGINE=InnoDB PARTITION BY HASH ('c1) PARTITIONS 4; クエリOK、影響を受ける0行 (0.06秒) ショー作成テーブルt1; + ------- + ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + | テーブル | テーブルの作成 | + ------- + ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + | t1 | CREATE TABLE 't1' ( 'c1' int (11) DEFAULT NULL、 キー 'c1' ('c1') /*! グローバル800020207 99990 * / ) エンジン=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci /*!50100 PARTITION BY HASH ('c1) パーティー4 */ |
方法2: mysqldumpツールを使用します。 例:
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); -結果 mysqldump -- コンパクトテストt1 include/mysqlbinlog.inc /*!50530 SET @ @ SESSION.PSEUDO_SLAVE_MODE=1 */; /*! SET @ OLD_COMPLETION_TYPE=@ @ COMPLETION_TYPE、COMPLETION_TYPE=0 */; DELIMITER /*!*/; ROLLBACK/*!*/; # [空] # original_commit_timestamp= MICROSECONDS-FROM-EPOCH (YYYY-MM-DD時間: 分: 秒TZ) # immediate_commit_timestamp= MICROSECONDS-FROM-EPOCH (YYYY-MM-DD時間: 分: 秒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= '#'/*!*/; '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=, @ @ session.collation_connection=, @ @ session.collation_server=/*!*/; SET @ @ session.lc_time_names=0/*!*/; SET @ @ session.collation_database=DEFAULT/*!*/; /*!80011 SET @ @ session.de fault_collation_for_utf8mb4=255 * // *!*/; /*!80013 SET @ @ session.sql_require_primary_key=0 * // *!*/; テーブル 't1' の作成 ( 'c1' int (11) DEFAULT NULL、 キー 'c1' ('c1') /*! グローバル800020207 99990 * / ) エンジン=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci /*!50100 PARTITION BY HASH ('c1) パーティー4 * / /*!*/; ......
方法3: バイナリログ同期を使用します。
次の例では、バイナリログはPolarDB for MySQL 8.0.2.2.0からMySQL 8.0.27に同期されます。
Data Transmission Service (DTS) を使用して、PolarDB for MySQL 8.0.2.2.0からMySQL 8.0.27にバイナリログを同期します。 詳細については、「PolarDB For MySQLクラスターからApsaraDB RDS for MySQLインスタンスへのデータの同期」をご参照ください。
PolarDB for MySQL 8.0.2.2.0およびMySQL 8.0.27でバイナリログの同期結果を表示します。
PolarDB for MySQL 8.0.2.2.0のサンプル結果:
MySQLのサンプル結果8.0.27: 前の図に示すように、PolarDB for MySQLで提供されている新機能はMySQLの結果には表示されません。
説明データがPolarDB for MySQL 8.0.2.2.0からMySQL 8.0.27に同期されると、PolarDB for MySQLで提供される新機能はMySQLで使用できなくなります。
CREATE TABLE以外のDDLステートメント
CREATE TABLE以外のDDLステートメントの場合、互換性を確保するために、PolarDB For MySQLステートメントに手動でコメントを追加する必要があります。 構文:
/*!99990 800020200特別な新しいPolarDB構文SQLサポート>=バージョン2.2.0 */
例:
テーブル 't1' の作成 (
'c1' int (11) DEFAULT NULL、キー 'c1' ('c1') /*! グローバル800020207 99990 * /
) エンジン=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
/*!50100 PARTITION BY HASH ('c1)
パーティー4 */
エンジンバージョンの照会
次のいずれかの方法を使用して、クラスターのエンジンバージョンを照会できます。
PolarDBコンソールにログインします。 エンジンバージョンを照会するクラスターの 概要 ページで、カーネルバージョン パラメーターの値を確認します。
show variables like "% polardb_version %";
またはshow variables like '% rds_release_date %';
ステートメントを実行して、エンジンのバージョンを照会します。説明PolarDB For MySQL 5.6クラスターの場合、
'% rds_release_date %';
ステートメントのみを使用してエンジンバージョンを照会できます。PolarDB For MySQLエンジンのバージョン番号の詳細については、「エンジンバージョンのコンポーネントとその関係」をご参照ください。
エンジンバージョンのアップグレード
メジャーバージョンのアップグレードとマイナーバージョンの更新
メジャーバージョンのアップグレード
PolarDB for MySQLは、主要なエンジンバージョンのアップグレードをサポートします。 たとえば、PolarDB For MySQL 5.6をPolarDB for MySQL 8.0にアップグレードできます。 メジャーバージョンのアップグレードの詳細については、「概要」をご参照ください。
マイナーバージョンの更新
PolarDB for MySQLでは、マイナーバージョンを更新することはできません。 ただし、DTSを使用して、ソースバージョンのクラスターからターゲットバージョンのクラスターにデータを移行または同期できます。 データを移行または同期する方法の詳細については、「概要」をご参照ください。
改訂バージョンのアップグレード
リビジョンバージョンをアップグレードする方法の詳細については、「リビジョンバージョンのアップグレード」をご参照ください。