如果我執行核心數據讀取請求,並應用一種描述符如說:我應該索引NSSortDescriptor中使用的屬性嗎?
NSSortDescriptor *sort= [[NSSortDescriptor alloc] initWithKey:@"createDate" ascending:NO];
應財產createDate
是一個索引屬性?爲什麼或者爲什麼不?
如果我執行核心數據讀取請求,並應用一種描述符如說:我應該索引NSSortDescriptor中使用的屬性嗎?
NSSortDescriptor *sort= [[NSSortDescriptor alloc] initWithKey:@"createDate" ascending:NO];
應財產createDate
是一個索引屬性?爲什麼或者爲什麼不?
According to the docs,是的,如果你有一個SQL備份存儲。謂詞和排序描述符在數據庫中編譯和評估,您將獲得索引優勢。
請參閱「獲取謂詞和排序描述符」部分。
數據庫索引附帶價格。數據庫必須保持索引最新,這會降低插入,刪除和可能的更新速度。寫性能。
但索引加快查詢和訂單條款。閱讀表現。
這是兩者之間的權衡。對你最重要的是什麼?閱讀或寫作表現?
那麼,索引有另一個副作用:內存使用。如果你需要對一些條目進行排序,即使只有一次,沒有索引,你也必須在內存中排序它們。這意味着將它們加載到內存中,所有這些。至少你正在排序的列,而不是整個事情。但仍然。
一如既往,儀器是決定什麼是最好的最佳方法。
什麼是索引屬性? – dasdom
它是核心數據SQLite數據存儲的一部分。在對象模型中,每個屬性都可以選擇索引。 – bitmoe
我想我從來沒有使用索引的屬性。你有沒有試過它? – dasdom