0Pricing
SQL Academy · Pelajaran

Kapan TIDAK Melakukan Sharding

Replika baca, partisi, dan mesin yang lebih besar menyelesaikan sebagian besar masalah skala — ketahui kapan sharding bukan jawaban yang tepat

Kapan TIDAK Melakukan Sharding adalah pelajaran SQL Academy gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar SQL Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus SQL Academy mencakup 4 pelajaran total.

Pemecahan Data Adalah Pilihan Terakhir

Pemecahan data melipatgandakan kompleksitas operasional. Sebagian besar aplikasi tidak pernah membutuhkannya. Gunakan semua pilihan yang lebih sederhana terlebih dahulu.

Langkah 1: Penskalaan Vertikal

Gunakan mesin yang lebih besar. Instans cloud modern dapat dengan mudah menangani:

  • 128 inti
  • 1 TB RAM
  • 50.000 IOPS NVMe

Itu berarti 100k-500k QPS pada satu simpul Postgres. Sebagian besar aplikasi dapat berjalan dengan nyaman.

Langkah 2: Replica Pembacaan

Jika pembacaan mendominasi, tambahkan replica. Satu primary + 3 replica dapat melayani pembacaan 10× lebih banyak.

Langkah 3: Caching

Tempatkan Redis/memcached di depan kueri yang sering diakses. Sering kali ini merupakan peningkatan termurah.

Langkah 4: Pemartisian

Pemartisian deklaratif bawaan PG mengatasi masalah "tabel terlalu besar" dalam satu server. Sering kali 100x lebih mudah daripada pemecahan data.

Langkah 5: Memisahkan Layanan

Pindahkan domain yang berbeda ke basis data yang berbeda—basis data pesanan, basis data pengguna, basis data analitik. Masing-masing dapat diskalakan secara independen.

Langkah 6: Memindahkan Analitik

Kueri OLTP → Postgres. Kueri analitik → ClickHouse / BigQuery / Snowflake. Banyak kasus "kita perlu memecah data" sebenarnya adalah "analitik menghabiskan sumber daya OLTP kita".

Kemudian, Mungkin, Memecah Data

Jika Anda masih kehabisan kapasitas pada 50TB data yang hanya berupa OLTP dan beban kerja menuntut penulisan yang tidak dapat ditangani satu server—mulailah merencanakan pecahan data.

Biaya Operasional Pemecahan Data

  • Lebih banyak server untuk dipantau dan diperbarui
  • Pencadangan di seluruh pecahan harus dikoordinasikan
  • Kueri lintas pecahan membebani kode aplikasi
  • Pemecahan ulang sulit dilakukan
  • Pecahan dengan trafik tinggi memerlukan penyeimbangan ulang aktif

Strategi "Memecah Data Belakangan"

Bangun aplikasi dengan pola yang siap untuk pemecahan data (selalu sertakan tenant_id, jangan pernah menggunakan penghitung yang meningkat secara global) sehingga Anda BISA memecah data nanti. Namun, jangan lakukan pemecahan data sebelum benar-benar diperlukan.

Skema yang Ramah terhadap Pemecahan Data

Meskipun Anda tetap menggunakan satu simpul, rancang seolah-olah Anda mungkin akan memecah data:

  • tenant_id di setiap baris
  • UUID atau pengenal terdistribusi (bukan peningkatan otomatis)
  • Tidak ada urutan yang unik secara global
  • Kunci asing dalam cakupan satu penyewa

Akui Komprominya

Pemecahan data meningkatkan kapasitas dengan mengorbankan kemampuan. JOIN, transaksi, dan kueri menjadi lebih sulit. Pastikan peningkatannya sepadan.

Ringkasan

Pemecahan data menyelesaikan masalah nyata, tetapi merupakan solusi yang berat.

  • Utamakan penskalaan vertikal
  • Replica pembacaan + caching
  • Pemartisian sebelum pemecahan data
  • Pindahkan analitik dari OLTP
  • Rancang agar siap dipecah, tunda pemecahan yang sebenarnya

Pemeriksaan Singkat

Anda mempertimbangkan pemecahan data karena kueri OLTP lambat. Sebelum memecah data, langkah apa yang paling mungkin membantu?

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Kapan TIDAK Melakukan Sharding” gratis?

Ya — teks lengkap “Kapan TIDAK Melakukan Sharding” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus SQL Academy, upgrade ke CoddyKit PRO. Kursus SQL Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Kapan TIDAK Melakukan Sharding”?

Replika baca, partisi, dan mesin yang lebih besar menyelesaikan sebagian besar masalah skala — ketahui kapan sharding bukan jawaban yang tepat Kamu berlatih SQL Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai SQL Academy?

Tidak diperlukan pengalaman sebelumnya. SQL Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.

Berapa lama pelajaran “Kapan TIDAK Melakukan Sharding” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran SQL Academy ini?

Ya. Setiap pelajaran SQL Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Strategi Sharding: Rentang, Hash, Direktori
  2. Kueri Lintas Shard: Masalah yang Sulit
  3. Citus dan Postgres Terdistribusi
  4. Kapan TIDAK Melakukan Sharding
← Kembali ke SQL Academy