title: Improve the speed of large collection querying
body: <p>Querying in the collection which contains 3 million items (collection size is <code>15GB</code>).</p>
  
  <pre><code>//indexing
  {name : 1}
  
  //query
  db.getCollection('contacts').find({name :"kello"}).limit(500)
  </code></pre>
  
  <p>The machine has <code>2Cores</code> and <code>8GB</code> memory, and it takes about <strong>30 seconds</strong> to finish this query. It is impossible to keep your client waiting for about half minutes.</p>
  
  <p>What can I do to accelerate it? </p>
  
  <p>Does it work to have a machine which contains 16GB/32GB memory and configure the mongodb to cache the whole collection into memory, so that it can finish the query all in memory?</p>
  
  <p>Or, should I got several 8GB machines to have a sharded cluster?</p>
  
  <p>Will those methods improve the query speed?</p>