2013-02-28 8 views
8

Sto costruendo un modello di dati in greenDAO. È una porta di un'app per iOS che utilizza i dati principali. In iOS utilizziamo indici (indici?) Per aumentare le prestazioni di ricerca in una tabella di 20 colonne (proprietà) in cui vengono interrogate frequentemente 5 colonne. So che questo si traduce in una memoria extra e fornisce scritture più lente nella tabella.Modo corretto per aggiungere colonne indice in greenDao?

Scavando nella documentazione, ho trovato il metodo addIndex (indice indice) in Entity e il metodo index() in Property.PropertyBuilder. Qual è il modo corretto di aggiungere un indice a un'entità?

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

o

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

O se invece sia la stessa cosa?

risposta

18

Utilizzare myProperty.index() per singoli indici di proprietà (perché è più conveniente).

Per gli indici più complessi, come gli indici a più colonne, utilizzare addIndex (indice):

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

non è qui dovrebbe essere index.makeUnique(); ? – Flinbor

+0

@Flinbor 'makeUnique()' è facoltativo. Usalo per evitare che due righe abbiano gli stessi valori in entrambe le colonne. –

+0

forse è obsoleto, ma quando lo provo genera un errore che dice 'Index' è astratto quindi non posso istanziarlo ... –

Problemi correlati