こちらの記事の続きです。
以下のページに記載の分です。
- 2.16.7 Other Limitations(MySQL HeatWave User Guide)
これらについても MySQL HeatWave User Guide に記載された内容を翻訳してそのまま列挙します。
2023/9/9 時点(MySQL バージョン 8.1.0-u2-cloud)の情報です。
今後、制限が変わる可能性があります。
その他の制限
以下のものが使用不可です(HeatWave にオフロードされず MySQL DB で実行されます)。
- デフォルト以外の SQL モードのほとんど
- 使用できるのは MySQL HeatWave User Guide の 2.11 Supported SQL Modes に列挙された以下のもののみ
- デフォルト
-
ONLY_FULL_GROUP_BY・STRICT_TRANS_TABLES・NO_ZERO_IN_DATE・NO_ZERO_DATE・ERROR_FOR_DIVISION_BY_ZERO・NO_ENGINE_SUBSTITUTION
-
- それ以外
-
ANSI_QUOTES・HIGH_NOT_PRECEDENCE・IGNORE_SPACE・NO_BACKSLASH_ESCAPES・REAL_AS_FLOAT・TIME_TRUNCATE_FRACTIONAL
-
- デフォルト
- 使用できるのは MySQL HeatWave User Guide の 2.11 Supported SQL Modes に列挙された以下のもののみ
-
gb18030_chinese_ci文字セットと照合順序 -
GROUP BY節のWITH ROLLUP修飾子-
DISTINCTの集約を含むクエリ -
GROUP BYキーが重複しているクエリ
-
-
COUNT(NULL)が非集約演算子の入力引数として使用されるケース -
ORDER BY句またはLIMIT句を持つ、異なるデータ型を持つ列(カラム)間、辞書エンコード列(カラム)間、またはENUM列(カラム)間のUNION ALL -
ORDER BY・LIMITの有無にかかわらず、異なるデータ型を持つ列(カラム)間、辞書エンコード列間、またはENUM列間のUNION -
ORDER BY・LIMITの有無にかかわらず、異なるデータ型を持つ列(カラム)間、辞書エンコード列間、ENUM列間のUNIONおよびUNION ALLがIN句またはEXISTS句で指定されたサブクエリ内で使用されるケース - 比較述語、
GROUP BY、JOINなどで、キー列がDOUBLE PRECISIONのケース - リレーショナルデータの型変換
- 例:
SELECT CONCAT(2, L_COMMENT) from LINEITEM;
- 例:
- 式やその他の関数を使用した
YEAR型データのクエリ- 例:
SELECT YEAR(d) + 1 FROM t1;
- 例:
- 異なる照合順序を持つ列を含む文字列操作
- 明示的なパーティション選択
- 24.5 Partition Selection(MySQL 8.0 Reference Manual) を参照
- カラム接頭辞を持つ主キー
- 仮想生成列(Virtual generated columns)
- トリガの一部として実行されるクエリ
- ストアド・プログラムを呼び出すクエリ
- ストアド・プログラムの一部として実行されるクエリ
- マルチ・ステートメント・トランザクションの一部であるクエリ
- マテリアライズド・ビュー
- 通常ビューの使用については 2.3.9 Using Views(MySQL HeatWave User Guide ) を参照
- 通常の
SELECTクエリの部分的なクエリ・オフロード- クエリのすべての要素がサポートされている場合にクエリ全体がオフロードされ、そうでない場合、クエリはデフォルトで MySQL DB システムで実行される
- HeatWave は
CREATE TABLE ... SELECTおよびINSERT ... SELECTステートメントをサポートしており、操作のSELECT部分のみが HeatWave にオフロードされる - 2.3 Running Queries(MySQL HeatWave User Guide) を参照
-
[H]H:MMの形式で UTC からのオフセットとして指定され、先頭に+または-が付く形式のtimezoneを指定するSET timezone = timezone-
UNIX_TIMESTAMP()関数とFROM_UNIXTIME()関数のみこの形式のタイムゾーン指定をサポート
-
- 名前付きタイムゾーン
- タイムゾーンについては 5.1.15 MySQL Server でのタイムゾーンのサポート(MySQL 8.0 リファレンスマニュアル) を参照
- 中間および最終クエリ結果の行サイズが 4MB を超えるケース
- 派生(derived)テーブルに対する連続フィルタ操作
- 例:テーブル
t1のテーブルスキャンでテーブルtt1のフィルタ(x < 7)を使用し、WHERE句でテーブルtt1の連続フィルタ(tt1.x > 5)を使用
- 例:テーブル
SELECT * FROM (SELECT * FROM t1 WHERE x < 7) tt1,
(SELECT * FROM t1 WHERE x < y) tt2
WHERE tt1.x > 5 AND tt1.x = tt2.x;
- 再帰 CTE(共通テーブル式)
- MySQL DB が
SUPER_READ_ONLYモードで実行されているケースでのデータのロード・アンロード・リカバリなど、ALTER TABLEを含む操作- MySQL DB のディスク容量が特定の期間、設定した容量以下になると、MySQL DB は
SUPER_READ_ONLYモードになる- ヘルス・モニター(Oracle Cloud Infrastructure ドキュメント) を参照
- MySQL DB のディスク容量が特定の期間、設定した容量以下になると、MySQL DB は