İlişkisel Veritabanı dünyasından geldim ve sonra bu Veri Mağazası'nı buldum. asmak birkaç gün sürdü. bazı bulgularım var.
Datastore'un ölçekli olarak oluşturulduğunu ve onu RDMBS'den ayıran şey olduğunu zaten biliyor olmalısınız. büyük veri kümesiyle daha iyi ölçeklemek için App Engine bazı değişiklikler yaptı (bazıları çok fazla değişiklik anlamına geliyor).
RDBMS VS DataStore
Yapısı
Veritabanında, verilerimizi genellikle Veri Deposu'ndaki Türler ve Varlıklar haline gelen Tablolar, Satırlar halinde yapılandırırız .
RDBMS'de İlişkiler İnsanların çoğu Bire Bir, Çoktan Bire, Çoktan Çoka İlişkisi, Datastore'da, "Katılmamış" bir şey olduğu için, ama yine de " ReferenceProperty "örn. Bire Bir İlişki Örneği .
Dizinler
Genellikle RDMBS'de, aramayı hızlandırmak ve veritabanı performansımızı artırmak için Birincil Anahtar, Yabancı Anahtar, Benzersiz Anahtar ve Dizin anahtarı gibi dizinler yaparız. Veri deposunda, tür başına en az bir dizin oluşturmanız gerekir (beğenip beğenmediğinizotomatik olarak oluşturulur ) çünkü veri deposu kuruluşunuzu bu dizinlere göre arar ve bana en iyi bölüm olduğuna inanır, RDBMS'de kullanarak arama yapabilirsiniz endeks dışı alanı biraz zaman alacak ama alacaktır. Datastore'da dizin olmayan özelliği kullanarak arama yapamazsınız.
Saymak
RDMBS, saymak çok daha kolaydır (*) ama veri deposunda, 1000 Sınırı olduğu için normal şekilde bile düşünmeyin (Evet bir sayım işlevi vardır) ve varlık kadar küçük bir işlem maliyeti olacak iyi değil ama her zaman iyi seçeneklerimiz var, Kırık Sayaçları kullanabiliriz .
Benzersiz Kısıtlamalar
RDMBS'de bu özelliği seviyoruz değil mi? ama Datastore'un kendi yolu var. bir özelliği benzersiz olarak tanımlayamazsınız :(.
Sorgu
GAE'nin Datatore daha iyi bir özellik daha sağlamaktadır GİBİ olduğunu (Oh hayır! Veri deposu yok GİBİ Kelimeler) SQL GQL .
Veri Ekleme / Güncelleme / Silme / Seçme
Hepimizin ilgilendiği yer, RDMBS'de olduğu gibi, RDBMS gibi Ekle, Güncelle, Sil ve Seç için bir sorguya ihtiyacımız var, Datastore, Datastore'un koyduğu, sildiğini, aldığını (çok fazla heyecanlanmadığını) Yazma, Okuma, Küçük İşlemler ( Veri Deposu Çağrıları için Okuma Maliyetleri ) ve Veri Modellemenin yürürlüğe girdiği yerlere koyma veya alma . bu işlemleri en aza indirmeli ve uygulamanızı çalışır durumda tutmalısınız. Okuma işlemini azaltmak için Memcache kullanabilirsiniz .