2016-03-10 14 views
10

Tôi đang tìm cách tăng tốc truy vấn đối với bản sao CoreData được SQL hỗ trợ của mình (hiển thị các bản ghi được sắp xếp theo ngày). Tôi biết chỉ mục có thể giúp tăng thời gian truy vấn, nhưng sự khác biệt giữa những gì:CoreData. Sự khác biệt giữa chỉ mục và lập chỉ mục là gì?

Nêu bật những thực thể mà một thuộc tính thuộc về, sau đó thêm một dấu phẩy tách ra danh sách các thuộc tính vào trường chỉ số như đã thấy ở đây:

enter image description here

Hoặc làm nổi bật thuộc tính, sau đó đánh dấu vào ô được lập chỉ mục như đã thấy ở đây:

enter image description here

+1

bạn có thể nhận ý tưởng từ đây [ http://stackoverflow.com/questions/8562711/what-are-indexes-in-the-xcode-core-data-data-model-inspector] –

Trả lời

8

Thêm một hàng với một attrib đơn ute đến danh sách Indexes tương đương với việc chọn Indexed cho thuộc tính đó: Nó tạo một chỉ mục cho thuộc tính để tăng tốc tìm kiếm trong câu lệnh truy vấn.

Danh sách Indexes có nghĩa là cho chỉ mục phức hợp. chỉ số hợp chất có ích khi bạn biết rằng bạn sẽ được tìm kiếm giá trị của các thuộc tính kết hợp trong WHERE khoản của một truy vấn:

SELECT * FROM customer WHERE surname = "Doe" AND firstname = "Joe"; 

Tuyên bố này có thể làm cho việc sử dụng một chỉ số hợp chất surname, firstname. Chỉ mục đó cũng sẽ hữu ích nếu bạn chỉ tìm kiếm surname, nhưng không phải nếu bạn chỉ tìm kiếm firstname. Hãy suy nghĩ về chỉ mục như thể nó là một cuốn sách điện thoại: Nó được sắp xếp theo họ đầu tiên, sau đó bằng tên đầu tiên. Vì vậy, thứ tự của các thuộc tính là quan trọng.

Trong trường hợp của bạn, bạn nên đi cho các chỉ mục đơn đầu tiên (nghĩa là, chọn Indexed cho các thuộc tính bạn muốn tìm kiếm). Chỉ số hợp chất bạn đã cho thấy không bao giờ có thể được sử dụng nếu bạn chỉ tìm kiếm babyId, chẳng hạn.

+0

Để thiết lập các chỉ mục phức hợp từ mã, xem thêm (chồng chéo) câu trả lời http: //stackoverflow.com/a/8657785/3419541 – PDK

+0

Xin chào, Làm cách nào tôi có thể thêm chỉ mục cho bảng Khi tôi không thể tìm thấy thuộc tính chỉ mục trong phiên bản Xcode mới nhất. – taitanxiami

+1

@taitanxiami Đó là một câu hỏi hay. Chỉ tìm thấy câu trả lời: Xcode 9 giờ có lệnh "Thêm chỉ mục tìm nạp" trong trình đơn Editor. Nó sẽ được kích hoạt nếu bạn chọn một thực thể. Bạn có thể xác định các chỉ số phức hợp bằng cách thêm nhiều thuộc tính vào chỉ mục đó. – Dirk

Các vấn đề liên quan