Rumah > Soal Jawab > teks badan
mongodb一个collection里存了日志,现在要进行统计分析。
因为是记录日志,所以经常插入信息,也就没有索引。但是分析查表的时候没有索引又特别慢。想问下有没有什么好的方法。暂时2000W数据量。
巴扎黑2017-05-02 09:22:46
Secara umumnya, indeks seharusnya tidak mempunyai kesan yang sangat jelas pada prestasi penulisan Sudah tentu, jika anda perlu menambah banyak indeks, itu adalah perkara lain. Jika anda belum mencubanya sebelum ini, disyorkan untuk mencubanya terlebih dahulu untuk melihat berapa banyak kesan sampingan yang dibawa oleh indeks yang anda perlukan, dan sama ada ia berada dalam julat yang boleh diterima. Jika ya, itu bagus, masalah selesai. Jika ini tidak boleh diterima, anda boleh mempertimbangkan dua pilihan berikut:
Gunakan sharding untuk transformasi.
Anda sepatutnya sudah tahu apa itu sharding, tidak perlu menerangkan lebih lanjut. Masalah yang dibawa oleh penyelesaian ini adalah jelas bahawa bilangan pelayan akan meningkat dengan ketara, yang juga merupakan hasil pengembangan mendatar yang tidak dapat dielakkan. Dalam jangka masa panjang, jika perniagaan anda bergerak ke hadapan, ini adalah jalan yang anda mesti ambil, jadi rancang ke hadapan.
Buat indeks yang berbeza pada titik set replikasi yang berbeza
Jika anda masih berjalan pada satu nod, adalah disyorkan untuk meningkatkan kepada set replika secepat mungkin. Terdapat banyak kes di mana kegagalan perkakasan satu nod menyebabkan data hilang dan tidak boleh dipulihkan. Jangan tunggu sehingga ia berlaku sebelum anda menyesal. Di bawah premis set replika, setiap hasil boleh diindeks secara bebas.
Nod henti
Alih keluar konfigurasi set replika dan mulakan dengan port yang berbeza
Bina indeks yang anda perlukan pada nod ini
Mulakan semula dengan konfigurasi asal
Perlu diambil perhatian bahawa set replika masih perlu melengkapkan semua operasi tulis pada nod utama, jadi terlalu banyak indeks masih boleh menyebabkan masalah. Semuanya masih perlu diuji sendiri untuk membuat kesimpulan.
phpcn_u15822017-05-02 09:22:46
Sama ada tambah indeks atau tukar kepada elasticsearch atau hbase. Adalah disyorkan untuk menukar kepada elasticsearch secepat mungkin