LoginSignup
1
0

MySQL HeatWave で動作の制限・制約がある SQL 文 (5) その他

Posted at

こちらの記事の続きです。

以下のページに記載の分です。

これらについても 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_BYSTRICT_TRANS_TABLESNO_ZERO_IN_DATENO_ZERO_DATEERROR_FOR_DIVISION_BY_ZERONO_ENGINE_SUBSTITUTION
      • それ以外
        • ANSI_QUOTESHIGH_NOT_PRECEDENCEIGNORE_SPACENO_BACKSLASH_ESCAPESREAL_AS_FLOATTIME_TRUNCATE_FRACTIONAL
  • gb18030_chinese_ci文字セットと照合順序
  • GROUP BY節のWITH ROLLUP修飾子
    • DISTINCTの集約を含むクエリ
    • GROUP BYキーが重複しているクエリ
  • COUNT(NULL)が非集約演算子の入力引数として使用されるケース
  • ORDER BY句またはLIMIT句を持つ、異なるデータ型を持つ列(カラム)間、辞書エンコード列(カラム)間、またはENUM列(カラム)間のUNION ALL
  • ORDER BYLIMITの有無にかかわらず、異なるデータ型を持つ列(カラム)間、辞書エンコード列間、またはENUM列間のUNION
  • ORDER BYLIMITの有無にかかわらず、異なるデータ型を持つ列(カラム)間、辞書エンコード列間、ENUM列間のUNIONおよびUNION ALLIN句またはEXISTS句で指定されたサブクエリ内で使用されるケース
  • 比較述語、GROUP BYJOINなどで、キー列がDOUBLE PRECISIONのケース
  • リレーショナルデータの型変換
    • 例:SELECT CONCAT(2, L_COMMENT) from LINEITEM;
  • 式やその他の関数を使用したYEAR型データのクエリ
    • 例:SELECT YEAR(d) + 1 FROM t1;
  • 異なる照合順序を持つ列を含む文字列操作
  • 明示的なパーティション選択
  • カラム接頭辞を持つ主キー
  • 仮想生成列(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()関数のみこの形式のタイムゾーン指定をサポート
  • 名前付きタイムゾーン
  • 中間および最終クエリ結果の行サイズが 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モードになる
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0