Anda dapat menggunakan fitur bahasa manipulasi data tanpa kunci (DML) dari Data Management (DMS) untuk membagi data tempat pernyataan SQL tunggal akan dieksekusi menjadi beberapa batch dan menjalankan pernyataan SQL pada setiap batch. Dengan cara ini, kinerja eksekusi dapat dipastikan dan dampak terhadap kinerja atau penyimpanan database dapat dikurangi. Fitur ini sangat berguna ketika Anda perlu mengubah sejumlah besar data, seperti membersihkan data historis atau memperbarui semua baris dalam tabel.
Informasi latar belakang
Seiring dengan pertumbuhan bisnis Anda, volume data juga terus meningkat. Dalam situasi ini, Anda mungkin perlu secara berkala membersihkan data tabel atau mengelola data online dan historis secara terpisah. Masalah-masalah berikut dapat muncul:
Pernyataan SQL tunggal memengaruhi sejumlah besar baris data. Jika jumlah entri log melebihi batas atas, pernyataan SQL gagal dieksekusi.
Pernyataan SQL dijalankan tanpa indeks yang ditentukan, menyebabkan penguncian tabel, meningkatkan beban database, atau bahkan kegagalan bisnis.
Untuk menyelesaikan masalah-masalah ini, Anda dapat membagi data yang terpengaruh menjadi beberapa batch dan menjalankan pernyataan SQL pada setiap batch. Namun, metode ini juga memiliki risiko.
Pengembang menulis program untuk membagi data.
Jika metode yang tidak tepat digunakan untuk membagi data, tabel mungkin tetap terkunci. Sebagai contoh, penggunaan klausa
LIMITuntuk membagi data merupakan metode yang tidak tepat.Interval eksekusi antar batch yang tidak sesuai harapan dapat menyebabkan latensi besar dalam sinkronisasi antara database utama dan sekunder saat data diubah.
Administrator basis data (DBA) secara manual mengekstraksi dan membagi data menjadi beberapa bagian untuk pemrosesan batch.
Proses ini kompleks, memakan waktu, rentan terhadap kesalahan, dan sulit disesuaikan.
Untuk menyelesaikan masalah-masalah di atas, Anda dapat menggunakan fitur DML tanpa kunci dari DMS. Untuk informasi lebih lanjut, lihat Melakukan Operasi DML Tanpa Kunci.
Jenis database yang didukung
MySQL: ApsaraDB RDS for MySQL, PolarDB for MySQL, MyBase for MySQL, PolarDB for Xscale, dan database MySQL pihak ketiga
PostgreSQL: ApsaraDB RDS for PostgreSQL, PolarDB for PostgreSQL, MyBase for PostgreSQL, dan database PostgreSQL pihak ketiga
MariaDB: ApsaraDB for MariaDB dan database MariaDB pihak ketiga
ApsaraDB for OceanBase dalam mode MySQL
PolarDB for PostgreSQL(Kompatibel dengan Oracle)
Manfaat
Bisnis Anda tidak terganggu.
Dampak terhadap kinerja dan penyimpanan database berkurang.
Efisiensi eksekusi untuk perubahan data dalam jumlah besar terjamin.
Cara kerja
Pernyataan SQL tunggal dijalankan pada batch data yang berbeda. Mesin DMS yang kuat dapat membagi data tempat pernyataan SQL tunggal akan dieksekusi menjadi beberapa batch.
Setelah pernyataan SQL dijalankan pada setiap batch, eksekusi memasuki periode penyangga.
Batasan
Hanya mendukung pernyataan UPDATE, DELETE, dan INSERT SELECT.
Jenis pernyataan | Deskripsi |
UPDATE dan DELETE |
|
INSERT_SELECT |
|
Skenario
Membersihkan data historis.
Memperbarui semua baris dalam tabel.