2016-04-13 12 views
2

Sorgulama ve yansıtma sorguları arasındaki fark konusunda biraz kafa karıştırıcıyım (bu, Temmuz ayı için geçerli olacak yeni fiyatlandırma ile ilgilidir).Maliyetleri kaydetmek için projeksiyon sorgusuna sorguyu döndürün

**POSTS:** 
post_id -index 
author -index 
post_message -index 
created -index 

Ben bir yazar tarafından gönderilen tüm mesajları ben N bir yazar yazdığı mesajların sayısı olan N mesajları alır sorgulamak istiyorsanız: Bir Tür böyle olduğunu düşünelim. Yani eğer 100 mesaj yazdıysa, bu sorgu için 100 okuma isteği yiyeceğim. Sadece bir kukla özellik oluşturabilir ve sonra sorguyu bir projeksiyon sorgusuna dönüştürebilir miyim. Bu yüzden dummy adında bir özellik ekledim ve sonra bir sorgu yapıyorum ancak yalnızca id, post_message ve oluşturuldum (yazar tarafından filtrelendiğimi zaten biliyordum). Bu şekilde, tüm bu varlıkları elde etmek için sadece 1 okundu. Bu yapmak mümkün mü? Neden herkes sorgulama maliyetlerinden kaçınmak için bunu yapmıyor?

cevap

2

Projeksiyonlar, öğenin kendisinden ziyade dizin değerlerinden döndürür; bu nedenle some limitations vardır. Örnekte

, sen (post_id, post_message, created) bir dizin oluşturmak gerekir, ama siz o özellikler endeksli edilemez varlık getirmesi gerekir böyle Text veya Blob olarak özelliklerini almak istiyorsa.

Ayrıca, proje eklemek istediğiniz özellikleri ekleyip değiştirirseniz, yeni dizinler oluşturmanız gerekeceğini de görebilirsiniz. Yani sizi bazı varlıklara karşı koruyabilse de, bazı fedakârlıklar da yaparsınız.

+0

1 Temmuz'dan itibaren başlayan yeni fiyatlandırma ile indeks oluşturma ücretsizdir (sadece bunların depolanması pahalıdır). Gördüğüm gibi sadece ekstra maliyet, dizinlerin depolanmasıdır (uzun metinlere veya lekelere ihtiyacım yoktur) ?? Önerdiğim şeyin yapılıp yapılamayacağını bilmek daha kaygılıyım. – user2924127

+0

Aslında bu önemli bir nokta: Verilerinize ve uygulamanıza bağlı olarak, tasarruflarınızdan birçoğunun yüksek bileşik endeks depolama maliyetleriyle dengelendiğini görebilirsiniz. – tx802