Jika basis data relasional tidak skala, tidak ada yang bisa. Jangan khawatir tentang masalah penskalaan.
SQL memiliki masalah dengan beberapa jenis analisis, tetapi tidak butuh banyak data untuk memicu masalah. Misalnya, pertimbangkan tabel tunggal dengan kolom yang mereferensikan baris lain berdasarkan kunci unik. Biasanya, ini dapat digunakan untuk membuat struktur pohon. Anda dapat menulis pernyataan SQL cepat yang merujuk pada baris terkait. Atau baris terkait yang terkait. Bahkan Anda dapat membuat jumlah lompatan tertentu. Tetapi jika, untuk setiap baris, Anda ingin memilih bidang pada baris terkait pertama dalam rantai yang memenuhi beberapa kriteria, maka itu menjadi rumit.
Pertimbangkan tabel lokasi kantor di tingkat negara, provinsi / negara bagian, kabupaten, kota, dan desa, dengan masing-masing kantor merujuk kantor yang dilaporkannya. Tidak ada jaminan bahwa kantor pelaporan masing-masing kantor hanya naik satu tingkat. Untuk kumpulan kantor yang dipilih, tidak semua di satu tingkat, Anda ingin membuat daftar kantor nasional masing-masing yang terkait. Ini membutuhkan loop statments SQL dan akan memakan waktu lama bahkan hari ini. (Dulu saya mendapatkan 30 detik pada pemilihan 30 kantor, tapi itu sudah lama sekali - dan beralih ke prosedur yang tersimpan sedikit membantu.)
Jadi alternatifnya adalah dengan meletakkan seluruh struktur ke dalam satu blok besar data, memberi label, dan menyimpannya. Saat Anda ingin menganalisis data, bacalah semuanya ke dalam memori sekaligus, tetapkan petunjuk untuk melacak struktur, dan Anda dapat memproses beberapa juta kantor dalam sekejap mata.
Semua ini tidak ada hubungannya dengan jumlah data. Kuncinya adalah sifat organisasi data. Jika tata letak relasional membantu, maka RDBMS adalah yang Anda inginkan. Jika tidak, beberapa jenis penyimpanan massal akan menjadi apa saja dari yang sedikit hingga empat kali lipat lebih cepat.
Perhatikan bahwa jika salah satu dari set data ini menjadi terlalu besar untuk masuk ke dalam memori, database non-SQL Anda tidak berfungsi lagi. Masalah lain adalah ketika Anda membutuhkan data dari lebih dari satu blok sekaligus; Anda dapat melakukan ini jika , dan hanya jika, semua blok masuk ke memori sekaligus. Dan pengguna harus menunggu saat Anda memuatnya.
Jika basis data relasional Anda akan menyebabkan masalah, itu akan dilakukan sebelum Anda memasukkan banyak data ke dalamnya. Satu-satunya masalah penskalaan yang mungkin Anda miliki adalah dengan program Anda ketika blok data yang Anda kumpulkan untuk DB nosql - jika Anda harus menggunakannya - menjadi terlalu besar untuk itu. (Jangan membaca tentang kesalahan di luar memori. Bahasa yang lebih baru terkadang melakukan hal-hal aneh dengan memori.)