全部产品
Search
文档中心

Data Management:Ikhtisar

更新时间:Jul 02, 2025

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 LIMIT untuk 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

  • Anda hanya dapat menjalankan pernyataan pada satu tabel.

  • Anda harus menentukan klausa WHERE dalam pernyataan. Untuk memperbarui atau menghapus semua baris dalam tabel, Anda harus menggunakan klausa WHERE 1=1.

  • Pernyataan UPDATE atau DELETE tidak boleh berisi subquery.

  • Pernyataan UPDATE atau DELETE tidak boleh berisi klausa LIMIT.

INSERT_SELECT

  • Anda hanya dapat menjalankan pernyataan SELECT pada satu tabel.

  • Anda harus menentukan klausa WHERE dalam klausa SELECT. Untuk memilih semua baris dalam tabel, Anda harus menggunakan klausa WHERE 1=1.

  • Klausa SELECT tidak boleh berisi klausa LIMIT, ORDER BY, atau GROUP BY.

Skenario

  • Membersihkan data historis.

  • Memperbarui semua baris dalam tabel.