Optimizing Core Data searches and sorts
Como dice el título, la indexación es velocidad de búsqueda y ordenación su base de datos. Sin embargo, ralentiza los cambios de guardado en la tienda persistente. Es importante cuando usa objetos NSPredicate
y NSSortDescriptor
dentro de su consulta.
Digamos que tiene dos entidades: PBOUser
y PBOLocation
(muchas en muchas). Se puede ver sus propiedades en la imagen de abajo:
Supongamos que la base de datos hay 10.000 usuarios y 50.000 ubicaciones. Ahora tenemos que encontrar a todos los usuarios con correo electrónico comenzando en a
. Si proporcionamos dicha consulta sin indexación, Core Data debe verificar cada registro (básicamente 10,000).
Pero lo que si está indexado (en otras palabras, ordenados por correo electrónico descendente)? -> Luego Core Data verifica solo aquellos registros iniciados con a
. Si Core Data llega al b
, dejará de buscar porque es obvio que no hay más registros cuyo correo electrónico comience con a
ya que está indexado.
Cómo habilitar la indexación en un modelo de datos básicos desde dentro de Xcode:
o:
Esperemos que son equivalentes :-)
Pero lo que si que quería: los correos electrónicos comenzaron con a
y el nombre comienza con b
Usted puede hacer esta comprobación indexado para name
propiedad de PBOUser
entidad, o:
Así es como se puede optimizar su base de datos :-)
-1 por no proporcionar ejemplos de uso. –
Sí, debe proporcionar una muestra para aclarar esta pregunta. – faviomob
por favor, proporcione una muestra –