Rumah  >  Soal Jawab  >  teks badan

mongodb - Python中mongo 高效排序

1.如何使用python对mongodb中的多个collection中的数据分析后做排序?

2.具体的使用场景是这样的,假设有如下model: 用户表,用户购买记录表。

假设记录表中存有用户每次买东西所花的钱,那么问题来了,如何将用户已购买东西花费金额的
累计和(假设此类统计字段有5个),做降序排列?

3.场景为我为了说明问题虚构的,事实上有很多统计字段,假设用户表中有100w条记录,记录表100w条数据,服务器4核8线程,能否做到每20条数据的等待时间不超过3s?

4.假设在统计完每个用户的所有数据后用sorted进行排序,是否效率真的会很低?

PHP中文网PHP中文网2741 hari yang lalu420

membalas semua(3)saya akan balas

  • PHPz

    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

    balas
    0
  • 巴扎黑

    巴扎黑2017-04-18 09:38:48

    Anda boleh memuatkan semua data koleksi ke dalam memori dan kemudian memprosesnya.

    balas
    0
  • ringa_lee

    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.

    balas
    0
  • Batalbalas