2013-02-28 32 views
8

GreenDAO'da bir veri modeli yapıyorum. Çekirdek Verileri kullanan bir iOS uygulamasının bir portudur. IOS'ta, 5 sütunun sıklıkla sorgulandığı 20 sütun (özellikler) tablosundaki arama performansını artırmak için dizinler (indeksler?) Kullanılır. Bu sonuçları fazladan depoda biliyorum ve tabloya daha yavaş yazımlar sağlıyor.Yeşil kolonda dizin sütunları eklemek için uygun yol?

Belgelere bakınca, Entity'daki addIndex (Dizin dizin) yöntemiyle ve Property.PropertyBuilder numaralı dizinde index() yöntemiyle karşılaştım. Bir Öğeye dizin eklemenin doğru yolu hangisidir?

Entity entity = schema.addEntity("entity"); 
entity.setSuperclass("SuperClass"); 
entity.addIdProperty(); 
entity.addIntProperty("property").index(); 

veya

Entity entity = schema.addEntity("entity"); 
entity.setSuperclass("SuperClass"); 
entity.addIdProperty(); 
Property property = entity.addIntProperty("property").getProperty(); 
entity.setIndex(property); 

Ya ikisi de aynı şeyi yapıyorlar?

cevap

18

Tek özellikli dizinler için myProperty.index() kullanın (çünkü bu en uygunudur).

Index index = new Index(); 
index.addProperty(property1); 
index.addProperty(property2); 
entity.addIndex(index); 
+0

index.makeUnique() olmalıdır burada değil;: daha karmaşık indekslerinde

, çok sütunlu dizinler gibi, addIndex (indeks) kullanımı ? – Flinbor

+0

@Flinbor 'makeUnique()' isteğe bağlıdır. Her iki sütunda da aynı değerlere sahip iki satır önlemek için kullanın. –

+0

belki bu modası geçmiş bir şey, ama denediğimde, "Index" in soyut olduğunu söyleyen bir hata atıyor, böylece onu başlatamıyorum ... –

İlgili konular