В моей модели я настроил Entity (скажем, Person), чтобы иметь атрибут в виде строки (называемый «name»), и поместил в него индекс.Если я делаю много запросов по моей модели, запросы оказываются снижением производительности.Мой запрос прост:
[ NSPredicate predicateWithFormat: @"%K == %@", @"name", lPersonName ];
, поэтому я предполагаю, что индекс выполнит свою работу.
Затем, если я вычислю какой-нибудь простой хэш-тег и сохраню его вместе с моим объектом,индексированный целочисленный атрибут (называемый «хэш»), и выполнение более узкого запроса снижает производительность.Например:
[ NSPredicate predicateWithFormat: @"%K == %d AND (%K == %@)",
@"hash", [ self calculateHashForName: lPersonName ],
@"name", lPersonName ];
Почему индекс целого числа намного быстрее, чем индекс строки?Я что-то пропускаю?Это проблема с базовыми данными?
Конечно, я могу оставить решение с помощью хеш-тега, но если я пропущу что-то, я хотел бы узнать об этом раньше, а не позже.