Bahsettiğiniz sayılar için, tüm alternatiflerin çalışması gerektiğini düşünüyorum (okuyun: analizinizi makul sürede bitirebileceksiniz). Çok daha hızlı sonuçlara yol açabilecek bir tasarım öneriyorum.
Daha önce yanıtlandığı gibi, genel olarak postgresql mongodan daha hızlıdır, bazen 4 kat daha hızlıdır. Örneğin bakınız:
http://www.enterprisedb.com/postgres-plus-edb-blog/marc-linster/postgres-outperforms-mongodb-and-ushers-new-developer-reality
Birleştirmelerdeki performansı iyileştirmek istediğinizi söylediniz. Varlıklar arasındaki benzerlikleri hesaplamakla ilgilendiğinizi varsayıyorum (örneğin, yazı, yazar), böylece esas olarak tabloya kendiniz (örn. Posta veya yazar tarafından) ve toplu olarak katılacaksınız.
Buna ilk yüklemeden sonra veritabanınızın salt okunur olacağını, sorunu endeks kullanımı için çok uygun kılan gerçeğini de ekleyin. Dizin güncellemesi için ödeme yapmayacaksınız, çünkü hiçiniz olmayacak ve sanırım dizin için fazladan depolama alanınız var.
Postgres kullanmak ve iki tabloda verileri depolamak olurdu:
tablo gönderileri yarat (post_id tamsayı, url varchar (255), author_id tamsayı);
- Verileri yükleyin ve ardından endeksleri oluşturun. - Bu daha hızlı bir yük ve tablo mesajlarını değiştirmek daha iyi endekslere yol açacaktır kısıtlar post_pk birincil anahtar (post_id); yayınlarda post_author dizini yarat (author_id);
tablo yorumları oluşturma (comment_id tamsayı, post_id tamsayı, author_id tamsayı, comment varchar (255)); tablo yorumlarını değiştir kısıtlama yorumlar ekle_pk birincil anahtar (comment_id); yorumlarda index_author dizini oluşturun (author_id); yorumlarda index_post dizini oluşturun (post_id);
Sonra m seçili sorgularda yorumlara dayalı olarak yazar benzerliğini hesaplayabilirsiniz. m_author_id olarak author_id, a. author_id'i a_author_id olarak sayın (ayrı m.post_id) yorumlardan gelen yayınlar olarak m olarak yorumları m.author_id tarafından kullanılan (post_id) bir grup olarak yorumlara katılın. AUTHOR_ID
Eğer nlp için yorumdaki kelimeleri tokenlemekle ilgileniyorsanız, bunun için başka bir tablo ekleyin, ancak verilerinizin hacmini önemli ölçüde artıracağını unutmayın.