MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

मोंगोइड डीबी में प्लक बनाम अलग। कौन सा तेज है?

चलो एक बेंचमार्क चलाते हैं!

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 . से लगभग दो गुना तेज है




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. मोंगोडीबी जावा पुल

  2. MongoDB में सशर्त $ लुकअप?

  3. MongoDB में किसी ऑब्जेक्ट के अंदर ऐरे डालें

  4. एम्बर-डेटा एम्बेडेड ऑब्जेक्ट्स को अलग-अलग ऑब्जेक्ट्स के रूप में संग्रहीत किया जाता है

  5. एकत्रीकरण को क्रमबद्ध करना addToSet परिणाम