MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

PostgreSQL dan MongoDB DI MANA DALAM kondisi

Perbedaan waktu eksekusi kueri adalah karena eksekusi pertama harus membaca lebih banyak blok 8kB dari disk:bandingkan shared read=631496 dan shared read=30359 .

PostgreSQL memutuskan untuk tidak menggunakan indeks untuk WHERE kondisi, tetapi indeks yang mendukung ORDER BY . Perhatikan bahwa karena IN tidak mungkin menggunakan satu indeks untuk keduanya WHERE kondisi dan ORDER BY – itu hanya mungkin untuk WHERE kondisi yang menggunakan = sebagai operator pembanding.

Jadi PostgreSQL harus membuat pilihan, dan mungkin membuat pilihan yang salah:karena statistiknya memberi tahu pengoptimal bahwa ada banyak baris yang memenuhi WHERE kondisi, ia memutuskan untuk membaca baris dalam ORDER BY pesan dan buang yang tidak sesuai dengan WHERE kondisi sampai telah ditemukan 100 baris hasil. Sayangnya, sepertinya baris yang cocok tidak dekat dengan awal tabel, dan PostgreSQL harus memindai banyak baris (Rows Removed by Filter: 17276154 ).

Untuk membuatnya gunakan pemindaian indeks untuk WHERE kondisi, ubah ORDER BY klausa sehingga PostgreSQL tidak dapat menggunakan indeks untuknya:

ORDER BY datetime + INTERVAL '0 seconds' DESC

Karena tidak ada gunanya indeks multi-kolom di sini, indeks terbaik adalah

CREATE INDEX ON report (sensor_id);


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB dan pencarian teks lengkap bagian dari kata

  2. Bagaimana cara mengubah semua elemen array dalam dokumen mongodb ke nilai tertentu?

  3. Arsitektur aplikasi berbasis luwak

  4. perbarui objek bersarang dua lapisan berdasarkan id

  5. Bagaimana cara mengubah string dengan karakter di int untuk seluruh koleksi?