Berikut ini hanya mengoceh gila dan mengoceh ...
Jika Anda meninggalkan semua data dalam satu tabel (tanpa partisi), Anda akan memiliki O (log n) kali pencarian menggunakan kunci. Mari kita ambil indeks terburuk di dunia, pohon biner. Setiap simpul pohon memiliki tepat satu kunci. Pohon biner seimbang sempurna dengan 268.435.455 (2 ^ 28 - 1) node pohon akan menjadi tinggi 28. Jika Anda membagi pohon biner ini menjadi 16 pohon yang terpisah, Anda mendapatkan 16 pohon biner masing-masing dengan 16.777.215 (2 ^ 24 - 1) simpul pohon untuk ketinggian 24. Jalur pencarian dikurangi 4 simpul, pengurangan ketinggian 14,287%. Jika waktu pencarian dalam mikrodetik, pengurangan 14,2857% dalam waktu pencarian adalah nihil-untuk-diabaikan.
Sekarang di dunia nyata, indeks BTREE akan memiliki treenodes dengan beberapa kunci. Setiap pencarian BTREE akan melakukan pencarian biner di dalam halaman dengan kemungkinan yang layak ke halaman lain. Sebagai contoh, jika setiap halaman BTREE berisi 1024 kunci, tinggi pohon 3 atau 4 akan menjadi norma, ketinggian pohon pendek memang.
Perhatikan bahwa pembagian tabel tidak mengurangi ketinggian BTREE yang sudah kecil. Diberi partisi 260 juta baris, bahkan ada kemungkinan kuat memiliki beberapa BTREE dengan ketinggian yang sama. Mencari kunci dapat melewati semua halaman BTREE root setiap waktu. Hanya satu yang akan memenuhi jalur rentang pencarian yang dibutuhkan.
Sekarang perluas ini. Semua partisi ada di mesin yang sama. Jika Anda tidak memiliki disk terpisah untuk setiap partisi, Anda akan memiliki rotasi I / O disk dan spindle sebagai penghambat otomatis di luar kinerja pencarian partisi.
Dalam hal ini, mem-partisi-by-database tidak akan membelikan Anda apa pun jika id adalah satu-satunya kunci pencarian yang digunakan.
Partisi data harus berfungsi untuk mengelompokkan data yang secara logis dan kohesif di kelas yang sama. Kinerja pencarian setiap partisi tidak perlu menjadi pertimbangan utama selama data dikelompokkan dengan benar. Setelah Anda mencapai partisi logis, kemudian berkonsentrasi pada waktu pencarian. Jika Anda hanya memisahkan data dengan id saja, mungkin banyak baris data tidak akan pernah diakses untuk dibaca atau ditulis. Sekarang, itu harus menjadi pertimbangan utama: Cari semua id yang paling sering diakses dan dipartisi dengan itu . Semua id yang lebih jarang diakses harus berada di satu tabel arsip besar yang masih dapat diakses dengan pencarian indeks untuk permintaan 'sekali dalam bulan biru'.
Dampak keseluruhan harus memiliki setidaknya dua partisi: Satu untuk id yang sering diakses, dan parisi lain untuk id lainnya. Jika id yang sering diakses cukup besar, Anda dapat mempartisi itu secara opsional.