Ceci est sur iOS. J'ai une base de données de base avec environ 350 000 objets. Les objets (Product) ont deux propriétés: "Barcode" et "Designation". L'utilisateur peut rechercher un objet en cherchant le "code à barres", et la "désignation" doit être renvoyée. Tout fonctionne bien, sauf que c'est lent. Le code que j'utilise est:Accélérer l'extraction des données de base
NSEntityDescription *_product = [NSEntityDescription entityForName:@"Product" inManagedObjectContext:importContext];
NSFetchRequest *fetch = [[NSFetchRequest alloc]init];
[fetch setEntity:_product];
[fetch setPredicate:[NSPredicate predicateWithFormat:@"Barcode == %@",theBarcode]];
NSError *error = nil;
NSArray *results = [importContext executeFetchRequest:fetch error:&error];
NSManagedObject *object = [results objectAtIndex:0];
Puisque je veux seulement aller chercher un objet, est-il un moyen d'accélérer?
Si je charge chaque objet dans un tableau au démarrage, je reçois un démarrage très lent pour l'application et prend beaucoup de RAM.
Merci d'avance!
EDIT: J'ai ajouté [fetch setFetchLimit: 1]; qui l'accélère un peu. Mais la vitesse devient de plus en plus lente dans la base de données de l'objet.
Je veux juste demander (peut-être que cela aidera) pourquoi charger toutes les données dans un tableau à chaque démarrage? – shannoga
Je ne fais pas ça. Mais j'ai dit, que si je fais ça, alors je vais avoir un démarrage lent :) – Mikael