全部产品
Search
文档中心

PolarDB:Batas

更新时间:Jan 29, 2026

Fitur PolarDB for MySQL In-Memory Column Index (IMCI) dirancang untuk mempercepat kueri pemrosesan analitis (AP) secara signifikan. Untuk memastikan IMCI mempercepat kueri SQL Anda dengan benar dan mengembalikan hasil yang diharapkan, tinjau cakupan serta batasan fitur ini sebelum menggunakannya.

Batas umum

Sebelum menggunakan indeks kolom dalam memori, pastikan lingkungan kluster dan skema tabel Anda memenuhi persyaratan berikut:

  • Storage engine: Indeks penyimpanan kolom hanya didukung untuk tabel yang menggunakan mesin penyimpanan InnoDB.

  • Tabel temporary: Anda tidak dapat menggunakan IMCI untuk mempercepat kueri pada tabel temporary.

  • Kolom virtual: Anda dapat membuat indeks kolom dalam memori pada kolom virtual jika kondisi berikut terpenuhi:

    • Atur parameter kluster imci_enable_virtual_column ke ON.

      Catatan

      Ini adalah parameter tingkat SESSION dan tidak dapat dimodifikasi di Konsol.

    • order_key tidak ditentukan saat membuat indeks kolom dalam memori.

  • Tipe kolom virtual: Anda tidak dapat membuat indeks kolom dalam memori untuk kolom virtual bertipe Spatial.

  • Untuk Multi-master Cluster (Limitless) Edition, Anda harus terlebih dahulu mengubah parameter kluster loose_polar_enable_imci_with_mm menjadi ON. Setelah itu, Anda dapat menambahkan node read-only global untuk indeks kolom dalam memori dan menggunakan fitur IMCI.

Batas pernyataan SELECT

Indeks penyimpanan kolom hanya mempercepat kueri SELECT. Jika pernyataan kueri mengandung struktur apa pun berikut ini, kueri tersebut tidak dapat dipercepat oleh indeks penyimpanan kolom dan akan beralih ke eksekusi penyimpanan baris:

  • Pernyataan SELECT yang mencakup pembacaan dengan locking, seperti SELECT ... FOR UPDATE atau SELECT ... FOR SHARE.

  • Pernyataan SELECT yang mengandung fungsi jendela dengan definisi frame. Contohnya, penggunaan ROWS UNBOUNDED PRECEDING dalam klausa OVER().

    SELECT
        time,
        subject,
        val,
        SUM(val) OVER (
            PARTITION BY subject
            ORDER BY time
            ROWS UNBOUNDED PRECEDING  --- Definisi frame dalam fungsi jendela, tidak didukung oleh IMCI
        ) AS running_total
    FROM
        observations;
  • Pernyataan SELECT yang mengandung subkueri dalam klausa GROUP BY. Contohnya, SELECT SUM(a) FROM t1 GROUP BY (SELECT ... FROM ...) as some_subquery;

  • Pernyataan SELECT yang mengandung subkueri dalam ekspresi ORDER BY. Contohnya, SELECT a FROM t1 ORDER BY (SELECT ... FROM ...) as some_subquery;

  • Pernyataan SELECT yang mengandung subkueri berkorelasi dalam kondisi ON dari JOIN. Contohnya, WHERE t1.a in (SELECT t2.a FROM t2 INNER JOIN t3 on t2.a = t3.a AND t2.b > t1.b);

  • Pernyataan SELECT yang mengandung subkueri dengan fungsi jendela dan item berkorelasinya muncul dalam kondisi HAVING.

  • Pernyataan SELECT yang mengandung subkueri dengan UNION dan item berkorelasinya muncul dalam salah satu subkueri UNION.

Batas ekspresi dan fungsi

Jika pernyataan SELECT mengandung ekspresi atau fungsi yang tidak didukung, seluruh kueri akan kembali menggunakan penyimpanan baris untuk eksekusi.

Ekspresi perbandingan

Ekspresi

Apakah indeks penyimpanan kolom didukung?

Catatan

BETWEEN ... AND ...

Didukung

Jika tipe data b dan c berbeda dalam a BETWEEN b AND c, masalah kompatibilitas dapat terjadi. Hasil kueri mungkin tidak konsisten dengan hasil kueri yang tidak menggunakan indeks kolom dalam memori.

NOT BETWEEN ... AND ...

Didukung

Jika tipe data b dan c berbeda dalam a NOT BETWEEN b AND c, masalah kompatibilitas dapat terjadi. Hasil kueri mungkin tidak konsisten dengan hasil kueri yang tidak menggunakan indeks kolom dalam memori.

GREATEST()

Didukung

Jika parameter input mencakup tipe TIME dan tipe string sekaligus, hasil perbandingan mungkin berbeda dari hasil kueri yang tidak menggunakan indeks kolom dalam memori.

IN()

Didukung

Jika tipe data expr0,expr1,... berbeda dalam IN(expr0, expr1, ...), masalah kompatibilitas dapat terjadi. Hasil kueri mungkin tidak konsisten dengan hasil kueri yang tidak menggunakan indeks kolom dalam memori.

LEAST()

Didukung

Jika parameter input mencakup tipe TIME dan tipe string sekaligus, hasil perbandingan mungkin berbeda dari hasil kueri yang tidak menggunakan indeks kolom dalam memori.

SOUNDS LIKE

Tidak didukung

-

Ekspresi string

Ekspresi

Apakah indeks penyimpanan kolom didukung?

Catatan

SOUNDEX()

Tidak didukung

-

MATCH

Didukung

MODE BOOLEAN dan MODE BAHASA ALAMI didukung.

LOAD_FILE()

Tidak didukung

-

TIMESTAMP()

Didukung

Saat menggunakan IMCI, fungsi ini hanya mendukung satu parameter. Fungsi ini tidak mendukung dua parameter.

Ekspresi enkripsi dan kompresi

Ekspresi

Apakah indeks penyimpanan kolom didukung?

AES_DECRYPT()

Tidak didukung

AES_ENCRYPT()

Tidak didukung

COMPRESS()

Tidak didukung

RANDOM_BYTES()

Tidak didukung

STATEMENT_DIGEST()

Tidak didukung

STATEMENT_DIGEST_TEXT()

Tidak didukung

UNCOMPRESS()

Tidak didukung

UNCOMPRESSED_LENGTH()

Tidak didukung

VALIDATE_PASSWORD_STRENGTH()

Tidak didukung

Fungsi JSON

Fungsi

Dukungan untuk Indeks Penyimpanan Kolom

JSON_ARRAY_INSERT()

Tidak didukung

JSON_CONTAINS_PATH()

Tidak didukung

JSON_INSERT()

Tidak didukung

JSON_MERGE()

Tidak didukung

JSON_MERGE_PATCH()

Tidak didukung

JSON_MERGE_PRESERVE()

Tidak didukung

JSON_REPLACE()

Tidak didukung

JSON_SCHEMA_VALID()

Tidak didukung

JSON_SCHEMA_VALIDATION_REPORT()

Tidak didukung

JSON_SEARCH()

Tidak didukung

JSON_SET()

Tidak didukung

JSON_STORAGE_FREE()

Tidak didukung

JSON_STORAGE_SIZE()

Tidak didukung

JSON_VALUE()

Tidak didukung

MEMBER OF()

Tidak didukung

Fungsi spasial

Fungsi

Apakah indeks penyimpanan kolom didukung?

ST_AsGeoJSON()

Tidak didukung

ST_Buffer()

Tidak didukung

ST_Buffer_Strategy()

Tidak didukung

ST_Centroid()

Tidak didukung

ST_Collect()

Tidak didukung

ST_ConvexHull()

Tidak didukung

ST_EndPoint()

Tidak didukung

ST_ExteriorRing()

Tidak didukung

ST_FrechetDistance()

Tidak didukung

ST_GeoHash()

Tidak didukung

ST_GeometryN()

Tidak didukung

ST_GeometryType()

Tidak didukung

ST_GeomFromGeoJSON()

Tidak didukung

ST_HausdorffDistance()

Tidak didukung

ST_InteriorRingN()

Tidak didukung

ST_Intersection()

Tidak didukung

ST_IsClosed()

Tidak didukung

ST_IsEmpty()

Tidak didukung

ST_IsSimple()

Tidak didukung

ST_IsValid()

Tidak didukung

ST_LatFromGeoHash()

Tidak didukung

ST_LineInterpolatePoint()

Tidak didukung

ST_LineInterpolatePoints()

Tidak didukung

ST_LongFromGeoHash()

Tidak didukung

ST_NumGeometries()

Tidak didukung

ST_NumInteriorRing()

Tidak didukung

ST_NumInteriorRings()

Tidak didukung

ST_NumPoints()

Tidak didukung

ST_PointAtDistance()

Tidak didukung

ST_PointFromGeoHash()

Tidak didukung

ST_PointN()

Tidak didukung

ST_StartPoint()

Tidak didukung

ST_SwapXY()

Tidak didukung