我上網了,但經過幾個小時還沒有意識到,如果最好使用謂詞或關係來獲取數據以獲得最佳性能。這是我的場景,假設我有兩個實體Entity A
和Entity B
和Entity A
與Entity B
有一對多關係。 Entity A -->> Entity B
在Core-Data中使用謂詞或關係有什麼更好?
都得到來自web服務的信息,然後使用關係選項,我首先從實體的信息,填補了Entity B
,當我填寫Entity A
我需要從Entity B
執行獲取該有與我的Entity A
(這對於我的Entity A
中的每個記錄)的關係假設對於id字段,,並且必須將每個匹配添加到核心數據關係。
在另一方面,這是沒有關係,我只需要填寫兩個實體,當我需要從Entity B
相關Entity A
記錄只是執行與謂詞指id字段爲獲取請求就是這樣。
乍一看似乎是使用引用第一種情況是效率較低,但我不知道,如果使用的關係有後續搜索和應用程序的總體操作的性能優越。
我希望有人能幫助我澄清我的懷疑。謝謝
如果你有太多的屬性,並不總是需要所有的東西,並且打算將來使用更多的關係,請使用兩種關係。否則,只能使用一個對象。應該衡量「表現」。 0.01秒太多的性能突破對你來說?或者,也許你正在導入數百萬個對象?誰知道。你試過什麼了 。爲什麼不只是創建一個空的項目並用你的特定用例進行測試呢? – 2017-08-26 18:16:47
感謝您的回覆潛行,我的意圖與這個問題是要知道在coredata的關係的好處,我沒有作出證明創建一個項目和測試這兩種情況,因爲你說,因爲我認爲第一案件將採取更多由於讀取和添加過程的時間。更具體地說,我的表A將包含最多1k條記錄,但我的表B可以保存至少100k –
我明白了。那麼,由於iOS/CoreData和NSFetchedResultsController會爲您執行內存管理,因此表保存的項目數不是最重要的。除非你手動做所有那些沒有NSFCtrl的東西。即使在沒有關係的對象中有許多屬性,也可以指定要提取的屬性以避免使用比需要更多的內存。你應該閱讀關於錯誤:https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/CoreData/FaultingandUniquing.html。另外,我建議你不要專注於「表現」,而是你的結構...... – 2017-08-26 22:07:46