Rumah > Soal Jawab > teks badan
假设记录表中存有用户每次买东西所花的钱,那么问题来了,如何将用户已购买东西花费金额的
累计和(假设此类统计字段有5个),做降序排列?
PHPz2017-04-18 09:38:48
Dayakan indeks mongodb untuk medan sepadan yang anda perlukan untuk menapis (mongodb menyokong berbilang indeks di bawah satu koleksi), iaitu indeks Memandangkan ia menggunakan jadual hash, ia sepatutnya lebih pantas dan anda boleh menggunakan api mongodb sendiri untuk mengisih . , Saya tidak pernah menghadapi situasi 100W
, tetapi saya ingat bahawa saiz 1~10W
seolah-olah berada dalam 500ms
sebagai perbandingan, tanpa membuka indeks, saya tidak boleh menjalani kehidupan saya sendiri
Selain itu, jika data yang anda perlu kira adalah sangat penting dan kekerapan panggilan adalah tinggi, adalah disyorkan untuk membuat koleksi yang berasingan, memanggil cache baris gilir dengan kerap, dan menukar ruang untuk masa Koleksi ini boleh mempunyai perkara berikut medan, id pengguna, terkini Jumlah pembelian dalam 3 jam, 12 jam yang lalu, 24 jam yang lalu, hari yang lalu, bulan yang lalu, jumlah volum pembelian yang lalu, dll. Kelemahan ini ialah ia membazirkan sedikit ruang, dan ia tidak dapat menggambarkan data dalam masa nyata, tetapi Faedahnya jelas Jika anda ingin menanyakan jumlah beli-belah pengguna, anda boleh menanyakannya, dengan respons milisaat
.Perkara di atas hanyalah pendapat satu keluarga dan hanya untuk rujukan
巴扎黑2017-04-18 09:38:48
Anda boleh memuatkan semua data koleksi ke dalam memori dan kemudian memprosesnya.
ringa_lee2017-04-18 09:38:48
Mongodb tidak pandai memproses data daripada berbilang koleksi, jadi sebaiknya agregatkan kesemuanya bersama-sama semasa mereka bentuk data itu sendiri.
Buat indeks untuk pertanyaan bagi satu koleksi Susunan penggunaan pertanyaan ialah: pertanyaan asas->agregasi->kaedah pertanyaan menjadi lebih dan lebih fleksibel dari kiri ke kanan, dan kecekapan pertanyaan adalah semakin rendah dan semakin rendah.
Menyoal berbilang koleksi perlu dilaksanakan sendiri, membuat pertanyaan daripada setiap koleksi secara berasingan dan memproses berbilang hasil pertanyaan.
Bagi mereka yang mempunyai keperluan ketepatan masa yang tinggi, gunakan lapisan cache perantaraan dan reka strategi kemas kini.