sql >> データベース >  >> NoSQL >> MongoDB

mongoiddbでのpluckvsdistinct。どちらが速いですか?

    ベンチマークを実行しましょう!

    require 'benchmark'
    
    
    1_200.times { FactoryGirl.create(:user) }
    
    Benchmark.bmbm(7) do |bm|
      bm.report('pluck') do
        User.pluck(:email)
      end
    
      bm.report('pluck.uniq') do
        User.pluck(:email).uniq
      end
    
      bm.report('only.pluck') do
        User.only(:email).pluck(:email)
      end
    
      bm.report('only.pluck.uniq') do
        User.only(:email).pluck(:email).uniq
      end
    
      bm.report('distinct') do
        User.distinct(:email)
      end
    
      bm.report('only.distnct') do
        User.only(:email).distinct(:email)
      end
    end
    

    出力:

    Rehearsal ------------------------------------------------
    pluck          0.010000   0.000000   0.010000 (  0.009913)
    pluck.uniq     0.010000   0.000000   0.010000 (  0.012156)
    only.pluck     0.000000   0.000000   0.000000 (  0.008731)
    distinct       0.000000   0.000000   0.000000 (  0.004830)
    only.distnct   0.000000   0.000000   0.000000 (  0.005048)
    --------------------------------------- total: 0.020000sec
    
                       user     system      total        real
    
    pluck          0.000000   0.000000   0.000000 (  0.007904)
    pluck.uniq     0.000000   0.000000   0.000000 (  0.008440)
    only.pluck     0.000000   0.000000   0.000000 (  0.008243)
    distinct       0.000000   0.000000   0.000000 (  0.004604)
    only.distnct   0.000000   0.000000   0.000000 (  0.004510)
    

    #distinctを使用していることを明確に示しています #pluckのほぼ2倍の速度です




    1. 一致するよりも大きいMongoDB集約配列サイズ

    2. node.jsでのrequireの動作

    3. MongoDB-データベースを削除する

    4. openshiftにプッシュした後にmongodbがリセットされる理由