2012-06-23 64 views
0

如果我執行核心數據讀取請求,並應用一種描述符如說:我應該索引NSSortDescriptor中使用的屬性嗎?

NSSortDescriptor *sort= [[NSSortDescriptor alloc] initWithKey:@"createDate" ascending:NO]; 

應財產createDate是一個索引屬性?爲什麼或者爲什麼不?

+0

什麼是索引屬性? – dasdom

+0

它是核心數據SQLite數據存儲的一部分。在對象模型中,每個屬性都可以選擇索引。 – bitmoe

+0

我想我從來沒有使用索引的屬性。你有沒有試過它? – dasdom

回答

0

According to the docs,是的,如果你有一個SQL備份存儲。謂詞和排序描述符在數據庫中編譯和評估,您將獲得索引優勢。

請參閱「獲取謂詞和排序描述符」部分。

0

數據庫索引附帶價格。數據庫必須保持索引最新,這會降低插入,刪除和可能的更新速度。寫性能。

但索引加快查詢和訂單條款。閱讀表現。

這是兩者之間的權衡。對你最重要的是什麼?閱讀或寫作表現?

那麼,索引有另一個副作用:內存使用。如果你需要對一些條目進行排序,即使只有一次,沒有索引,你也必須在內存中排序它們。這意味着將它們加載到內存中,所有這些。至少你正在排序的列,而不是整個事情。但仍然。

一如既往,儀器是決定什麼是最好的最佳方法。

相關問題