Pembagian rentang interval merupakan perluasan dari pembagian rentang. Fitur ini memungkinkan database secara otomatis membuat partisi saat data yang akan dimasukkan melebihi rentang partisi yang ada.
Prasyarat
Versi kluster harus PolarDB for MySQL 8.0.2, dengan versi revisi kluster minimal 8.0.2.2.0 atau lebih baru. Untuk informasi tentang cara memeriksa versi kernel kluster Anda, lihat Kueri versi mesin.
Informasi latar belakang
Saat memasukkan data ke tabel partisi rentang dan data tersebut berada di luar rentang partisi yang ada, data tidak dapat dimasukkan, dan kesalahan akan dikembalikan. Namun, jika data yang akan dimasukkan melebihi rentang tabel partisi interval, database dapat secara otomatis membuat partisi baru berdasarkan rentang yang ditentukan oleh klausa INTERVAL.
Misalnya, jika rentang partisi diatur untuk satu bulan dan data yang akan dimasukkan adalah dua bulan dari titik transisi saat ini (nilai batas maksimum partisi saat ini), maka partisi untuk bulan data tersebut dan partisi untuk bulan sebelumnya akan dibuat. Sebagai contoh, Anda membuat tabel partisi rentang interval dengan interval satu bulan dan titik transisi saat ini pada 15 September 2021. Jika Anda mencoba memasukkan data tanggal 10 Desember 2021, database secara otomatis membuat tiga partisi untuk tiga interval dari 15 September 2021 hingga 15 Desember 2021. Data kemudian dimasukkan ke dalam partisi yang mencakup interval 10 Desember 2021.
Batasan
Dalam pembagian rentang interval, COLUMNS() hanya dapat menentukan satu kunci partisi, yang harus berupa rentang numerik atau tanggal.
Setidaknya satu partisi rentang harus didefinisikan.
Partisi untuk tabel partisi rentang interval hanya dapat dibuat dalam urutan menaik.
Jika kunci partisi bertipe DATE, interval tidak boleh bertipe TIME (HOUR, MINUTE, atau SECOND). Jika kunci partisi bertipe TIME, interval tidak boleh bertipe DATE (YEAR, QUARTER, MONTH, WEEK, atau DAY). Jika kunci partisi bertipe SECOND, interval tidak boleh kurang dari 60.
Pernyataan INSERT SELECT atau UPDATE tidak didukung untuk menambahkan partisi.
Interval yang didefinisikan saat membuat tabel tidak dapat diubah.
Subpartisi hanya didukung untuk tabel partisi range-hash.
Saat menjalankan pernyataan LOAD DATA untuk mengimpor data, pastikan rentang saat ini dari tabel partisi dapat mencakup semua data.
Pemicu, fungsi tersimpan, atau prosedur tersimpan tidak dapat digunakan untuk memasukkan data ke dalam partisi rentang interval.
Pernyataan LOCK TABLES tidak didukung.
Kunci partisi tidak boleh AUTO_INCREMENT, kolom virtual, kolom default yang dihasilkan, atau bertipe STRING.
Awalan partisi kustom (termasuk yang dibuat dengan pernyataan pembuatan tabel dan DDL) tidak boleh diawali dengan string _p.
Partisi yang dibuat secara otomatis tidak dapat dikembalikan setelah dibuat.
Saat memasukkan data secara batch, Anda dapat membuat hingga 30 partisi sekaligus.
Jika Anda menjalankan pernyataan DDL lainnya saat menjalankan pernyataan INSERT untuk secara otomatis membuat partisi, deadlock mungkin terdeteksi, dan kesalahan akan dilaporkan.
Pembagian rentang interval adalah perluasan dari rentang pembagian. Dalam skenario di mana pembagian rentang interval tidak berlaku, gunakan pembagian rentang sebagai gantinya.
Penggunaan
| Parameter | Deskripsi |
| partition_level_mdl_enabled | Pembagian rentang interval diimplementasikan berdasarkan fitur MDL tingkat partisi. Keuntungannya adalah granularitas Minimum Description Length (MDL) yang lebih kecil dapat mengurangi dampak pernyataan DDL pada pernyataan DML. Oleh karena itu, untuk menggunakan pembagian rentang interval, Anda harus memastikan bahwa parameter partition_level_mdl_enabled disetel ke ON. Jika parameter ini disetel ke OFF, Anda tidak dapat membuat tabel partisi rentang interval. Untuk tabel partisi rentang interval yang sudah ada, Anda hanya dapat memasukkan nilai-nilai yang berada dalam rentang partisi. Jika Anda memasukkan nilai di luar rentang, kesalahan akan dilaporkan. |
| interval_partitioning_enabled | Parameter interval_partitioning_enabled mengontrol fitur Pembagian rentang interval, sedangkan parameter partition_level_mdl_enabled mengontrol fitur MDL tingkat partisi. Kedua parameter tersebut diperlukan untuk fitur Pembagian rentang interval. Kedua parameter tersebut harus disetel ke ON. Jika parameter interval_partitioning_enabled disetel ke OFF, Anda tidak dapat membuat tabel partisi rentang interval. Untuk tabel partisi rentang interval yang sudah ada, Anda hanya dapat memasukkan nilai-nilai yang berada dalam rentang partisi. Jika Anda memasukkan nilai di luar rentang, kesalahan akan dilaporkan. |
| transaction_isolation | Fitur MDL tingkat partisi hanya dapat menyediakan isolasi pada level read-committed atau read-uncommitted. Oleh karena itu, parameter ini harus sesuai dengan level isolasi fitur MDL tingkat partisi. Secara default, kluster cloud menggunakan level isolasi read-committed. |