元ドキュメント: MySQL 互換性
MySQL 互換性
TDSQL Boundless は MySQL 8.0 プロトコルおよび構文と高い互換性があります。MySQL エコシステムのシステムツール(phpMyAdmin、Navicat、MySQL Workbench、DBeaver など)やクライアントは、すべて TDSQL Boundless で使用可能です。
非サポート機能
以下の機能は現在サポートされていません:
- システムデータベース
mysqlでの DDL 実行の禁止 - 生成列(Generated column)
- イベント(Event)
- テーブルスペース(Tablespace)、トランスポータブルテーブルスペースを含む
- リソースグループ(Resource group)
- 外部キー(Foreign keys)
- LOB データ型の部分更新(Partial Update of LOB in InnoDB)
- JSON データ型のマルチバリューインデックス(Multi-valued indexes)
- 空間型の関数(GEOMETRY/GIS)、データ型、およびインデックス
- 全文検索構文およびインデックス(Fulltext indexes)
- 降順インデックス(Descending indexes)
- REPAIR TABLE 構文
- パーティション交換(ALTER TABLE ... EXCHANGE PARTITION)
- SKIP LOCKED 構文
- XA 関連の構文(成功を返しますが実際には機能しません)
- グループレプリケーション(Group Replication)
- X プロトコル(X Protocol)
MySQL との差異がある機能
オートインクリメント列
TDSQL Boundless は高パフォーマンスモードと MySQL 互換モードの2種類のオートインクリメント ID を提供します:
- 高パフォーマンスモード:各対等ノードでオートインクリメント ID のバッチをキャッシュすることでパフォーマンスを向上。グローバルユニーク性は保証されますが、全ノード間での連番は保証されません。キャッシュのバッチサイズはパラメータ
tdsql_auto_increment_batch_sizeで制御され、デフォルト値は100です。 - MySQL 互換モード:システムパラメータ
tdsql_auto_increment_batch_sizeを1に設定すると、グローバルユニークかつ単調増加するオートインクリメント値が保証されます。
警告:AUTO_INCREMENT 列の値の重複を防ぐため、独立した主キーまたはユニークインデックスとして定義する必要があります。複合主キーの一部としてのみ定義した場合、手動挿入された ID とシステム生成の ID が競合する可能性があります。
ストレージエンジン
TDSQL Boundless は RocksDB ストレージエンジンのテーブルのみの作成・使用をサポートします。ユーザーがテーブル作成時にどのストレージエンジンを指定しても、TDSQL は RocksDB エンジンに変換します。
注意:Blackhole エンジンは例外です。
文字セットと照合順序
TDSQL Boundless は MySQL 8.0.29 以前のデフォルト文字セット utf8mb3(UTF8)を踏襲しています。アプリケーションの互換性とポータビリティを向上させるため、テーブル作成時やデータベース接続確立時に明示的に文字セットを指定することを推奨します。
| 比較項目 | TDSQL Boundless | MySQL 8.0.29未満 | MySQL 8.0.29以上 |
|---|---|---|---|
| デフォルト文字セット | utf8mb3 | utf8mb3 | utf8mb4 |
| デフォルト照合順序 | utf8_general_ci | utf8_general_ci | utf8mb4_0900_ai_ci |