全部产品
Search
文档中心

PolarDB:Ikhtisar

更新时间:Jul 03, 2025

Bagian ini memperkenalkan istilah terkait urutan dan jenis-jenis urutan yang didukung oleh PolarDB-X.

PolarDB-X menyediakan urutan untuk menghasilkan nilai numerik unik secara global yang bertambah secara berurutan, seperti nilai kolom kunci utama dan nilai kolom indeks unik. Nilai yang dihasilkan oleh urutan PolarDB-X adalah tipe data MySQL BIGINT, yang menyimpan bilangan bulat bertanda 64-bit.

Istilah

Bagian ini menjelaskan istilah-istilah terkait urutan untuk membantu Anda memilih jenis urutan sesuai kebutuhan bisnis Anda.

  • Berurutan: Jika nilai saat ini dalam urutan adalah n, nilai berikutnya harus n + 1. Jika nilai berikutnya bukan n + 1, maka urutan tersebut merupakan urutan tidak berurutan.

  • Bertambah monoton: Jika nilai saat ini dalam urutan adalah n, nilai berikutnya harus lebih besar dari n.

  • Bertambah monoton pada tingkat makro dan tidak bertambah monoton pada tingkat mikro: Sebagai contoh, urutan yang berisi 1, 3, 2, 4, 5, 7, 6, 8, ... bertambah monoton pada tingkat makro tetapi tidak bertambah monoton pada tingkat mikro.

  • Kemampuan unitisasi: Kemampuan ini memungkinkan Anda membuat urutan GROUP yang mencakup beberapa unit di beberapa instance atau database. Nilai urutan unik secara global dihasilkan di beberapa instance atau database.

Menggunakan urutan

PolarDB-X mendukung dua kategori urutan:

  • Urutan eksplisit: Anda dapat menggunakan pernyataan DDL untuk membuat dan memelihara urutan eksplisit. Urutan eksplisit dapat digunakan secara mandiri. Anda dapat menjalankan pernyataan SELECT seq.nextval untuk mendapatkan nilai dalam urutan eksplisit. seq menentukan nama urutan.

  • Urutan implisit: Jika Anda menentukan atribut AUTO_INCREMENT untuk kolom kunci utama, urutan implisit dapat digunakan untuk menghasilkan nilai kunci utama secara otomatis. PolarDB-X secara otomatis memelihara urutan implisit. Untuk informasi lebih lanjut, lihat AUTO_INCREMENT.

Jenis dan fitur urutan yang didukung

PolarDB-X mendukung jenis-jenis urutan berikut.

Jenis (singkatan)

Unik secara global

Berurutan

Bertambah monoton

Bertambah monoton dalam sesi yang sama

Tipe data

Keterbacaan

Kemampuan unitisasi

New sequences

Ya

Ya

Ya

Ya

Semua tipe data integer didukung.

Tinggi

Tidak

Group sequences

Ya

Tidak

Tidak

Ya

Semua tipe data integer didukung.

Tinggi

Ya

Time sequences

Ya

Tidak

Bertambah monoton pada tingkat makro dan tidak bertambah monoton pada tingkat mikro

Ya

Hanya BIGINT yang didukung.

Rendah

Tidak

Urutan baru

Urutan baru menghasilkan nilai yang globally unique, consecutive, dan monotonically increasing. Secara default, nilai urutan baru adalah nilai numerik alami, dengan nilai awal 1.

Catatan
  • Jika versi kernel instance PolarDB-X Anda adalah V5.4.14 atau yang lebih baru dan Anda tidak menentukan jenis urutan ketika membuat urutan dalam mode AUTO, urutan baru akan dibuat.

  • Hanya instance PolarDB-X 5.4.17 dan yang lebih baru yang memungkinkan Anda menentukan parameter INCREMENT BY, MAXVALUE, dan CYCLE atau NOCYCLE.

  • Untuk batasan pada urutan baru, lihat Urutan Baru.

  • Keuntungan: Keunikan global, kontinuitas, bertambah monoton, performa tinggi, serta dukungan untuk parameter INCREMENT BY, MAXVALUE, dan CYCLE atau NOCYCLE.

  • Kekurangan: Ketergantungan pada fitur GMS dan penggunaan lebih banyak sumber daya GMS dibandingkan jenis urutan lainnya.

Contoh:

Anda dapat membuat urutan baru dan menentukan 100.000 sebagai nilai awal urutan. Urutan menghasilkan nilai unik secara global, berurutan, dan bertambah monoton. Contoh nilai urutan:

100000, 100001, 100002, 100003, 100004, ..., 199999, 200000, 200001, 200002, 200003,...

Urutan grup

Urutan grup menghasilkan nilai numerik alami yang unik secara global dan dimulai dari 100.001. Nilai dalam urutan grup tidak harus berurutan atau bertambah monoton. Secara default, jika Anda tidak menentukan parameter UNIT COUNT atau INDEX saat membuat urutan grup, urutan grup dengan satu unit akan dibuat. Dalam sebagian besar skenario, hanya satu unit yang diperlukan.

Jika Anda menentukan nilai lebih besar dari 1 untuk parameter UNIT COUNT, urutan grup akan mencakup beberapa unit. Urutan grup dengan beberapa unit memiliki fitur-fitur berikut:

  • Jumlah unit menentukan ruang urutan yang dialokasikan ke urutan grup.

  • Setiap unit ditentukan oleh parameter INDEX. Setiap unit menempati subset dari ruang urutan.

  • Indeks unit tidak boleh duplikat. Anda harus menentukan indeks berbeda untuk setiap unit. Subset ruang urutan untuk unit-unit yang berbeda tidak tumpang tindih, sehingga urutan menghasilkan nilai berbeda untuk setiap unit.

PolarDB-X menggunakan beberapa node untuk menghasilkan nilai untuk urutan grup. Model multi-node ini memastikan ketersediaan tinggi urutan grup. Sistem mengambil segmen nilai dari database pada satu waktu. Dalam skenario seperti pemutusan jaringan, tidak semua nilai dalam segmen digunakan, sehingga nilai urutan mungkin tidak berurutan.

  • Keuntungan: Urutan grup menghasilkan nilai unik secara global, memberikan performa tinggi, dan tidak menyebabkan titik kegagalan tunggal. Urutan grup juga dapat menyediakan nilai unik di beberapa instance atau database.

  • Kekurangan: Urutan grup mungkin berisi nilai tidak berurutan dan mungkin tidak dimulai dari nilai awal yang ditentukan.

Catatan

Untuk batasan pada urutan grup, lihat Urutan Grup.

Contoh:

Anda dapat membuat urutan grup dan menentukan 100.000 sebagai nilai awal urutan. Urutan menghasilkan nilai unik secara global. Contoh nilai urutan:

200001, 200002, 200003, 200004, 100001, 100002, 100003, 200005, 200006, ...

Nilai awal sebenarnya dari urutan grup mungkin bukan nilai awal yang ditentukan. Nilai awal sebenarnya bisa berupa nilai yang lebih besar dari nilai awal yang ditentukan. Dalam contoh ini, nilai awal yang ditentukan adalah 100.000, tetapi nilai awal sebenarnya dari urutan adalah 200.001.

Urutan grup menghasilkan nilai unik secara global dan dapat berisi nilai tidak berurutan. Sebagai contoh, jika sebuah node gagal atau hanya beberapa nilai dalam segmen nilai urutan digunakan ketika koneksi ditutup, nilai urutan menjadi tidak berurutan. Dalam contoh sebelumnya, nilai antara 200.004 dan 100.001, serta antara 100.003 dan 200.005 tidak digunakan.

Urutan waktu

Nilai urutan waktu terdiri dari timestamp, ID node, dan nomor seri. Urutan waktu menghasilkan nilai yang unik secara global dan bertambah otomatis pada tingkat makro. Pembaruan nilai dalam urutan waktu tidak bergantung pada database. Anda hanya perlu menyimpan nama urutan dan jenisnya di database, tanpa menyimpan nilai urutan secara persisten. Dengan cara ini, urutan waktu dapat memberikan performa yang sangat baik. Contoh nilai urutan: 776668092129345536, 776668098018148352, 776668111578333184, 776668114812141568, ....

  • Keuntungan: Urutan waktu menghasilkan nilai unik secara global dan memberikan performa yang sangat baik.

  • Kekurangan: Nilai dalam urutan waktu tidak berurutan. Parameter START WITH, INCREMENT BY, MAXVALUE, CYCLE, dan NOCYCLE tidak berpengaruh pada urutan waktu.

Penting

Jika urutan waktu dikaitkan dengan kolom auto-increment dalam tabel, nilai kolom auto-increment harus berupa tipe data BIGINT.

Skenario umum

Ketiga jenis urutan menghasilkan nilai unik secara global dan dapat digunakan dalam kolom kunci utama dan kolom indeks unik.

  • Jika versi kernel instance PolarDB-X Anda adalah V5.4.14 atau yang lebih baru, kami sarankan Anda hanya menggunakan urutan BARU dalam database dalam mode AUTO.

  • Secara default, urutan grup digunakan dalam database dalam mode DRDS.

  • Urutan grup hanya dapat digunakan untuk aplikasi yang terdiri dari beberapa unit atau yang bermigrasi dari PolarDB-X 1.0.

  • Urutan waktu hanya dapat digunakan untuk aplikasi yang bermigrasi dari PolarDB-X 1.0.