Jumlah ini tidak setinggi yang Anda kira. Dalam pekerjaan saat ini, kami menyimpan data metrik untuk situs web dan jumlah total baris yang kami miliki jauh lebih tinggi. Dan di pekerjaan sebelumnya saya bekerja dengan database pg yang mengumpulkan metrik dari jaringan seluler dan mengumpulkan ~2 miliar catatan per hari. Jadi jangan takut dengan miliaran jumlah catatan.
Anda pasti perlu mempartisi data - kemungkinan besar pada siang hari. Dengan jumlah data ini Anda dapat menemukan indeks sangat tidak berguna. Tergantung pada pesawat yang akan Anda lihat di EXPLAIN
keluaran perintah. Misalnya, aplikasi telco tidak menggunakan indeks sama sekali karena hanya akan memperlambat seluruh mesin.
Pertanyaan lain adalah seberapa cepat tanggapan untuk pertanyaan yang Anda perlukan. Dan langkah mana dalam perincian (jumlah dari jam/hari/minggu dll) untuk kueri yang Anda izinkan untuk pengguna. Anda bahkan mungkin perlu membuat beberapa agregasi untuk perincian seperti minggu atau bulan atau kuartal.
Tambahan:
~2 miliar catatan per hari di aplikasi telekomunikasi itu membutuhkan ~290GB per hari. Dan itu berarti penyisipan ~23000 catatan per detik menggunakan penyisipan massal dengan perintah COPY. Setiap massal adalah beberapa ribu catatan. Data mentah dipartisi berdasarkan menit. Untuk menghindari menunggu disk, db memiliki 4 ruang tabel pada 4 disk/array yang berbeda dan partisi didistribusikan di atasnya. PostreSQL mampu menangani semuanya tanpa masalah. Jadi, Anda juga harus memikirkan konfigurasi HW yang tepat.
Ide bagus juga adalah memindahkan direktori pg_xlog ke disk atau array yang terpisah. Tidak hanya sistem file yang berbeda. Itu semua harus terpisah HW. SSD yang dapat saya rekomendasikan hanya dalam array dengan pemeriksaan kesalahan yang tepat. Akhir-akhir ini kami mengalami masalah dengan database yang rusak pada satu SSD.