2011-07-12 31 views
19

Sự khác nhau cơ bản giữa coredata và sqlite là cả hai đều là cơ sở dữ liệu và có thể được sử dụng với sự phát triển của IOS. và cũng cho tôi biết cách nào tốt hơn để lưu và truy xuất dữ liệu lớnSự khác biệt giữa coredata và sqlite

+3

thể trùng lặp của [Core Data vs SQLite 3] (http: // stackoverf low.com/questions/523482/core-data-vs-sqlite-3) – Abizern

+1

cũng là bản sao có thể có của [Sử dụng CoreData hoặc SQLite trên iPhone?] (http://stackoverflow.com/questions/1318467/use-coredata- hoặc-sqlite-on-iphone) –

Trả lời

68

Có sự khác biệt rất lớn giữa hai dữ liệu này. SQLLite là cơ sở dữ liệu giống như chúng tôi có MS SQL Server. Nhưng CoreDataORM (Mô hình quan hệ đối tượng) tạo ra một layer giữa databaseUI. Nó speeds-up số tương tác process vì chúng tôi không phải write queries, chỉ hoạt động với ORM và để ORM xử lý chương trình phụ trợ. Đối với save or retrieval of large data, tôi khuyên bạn nên sử dụng Core Data vì khả năng xử lý tốc độ xử lý của thiết bị ít hơn. Hi vọng điêu nay co ich.

@Arundhati: Sử dụng dữ liệu cốt lõi, chúng tôi có thể tối ưu hóa bộ nhớ một cách hiệu quả.

Trân trọng.

+1

Bổ sung ở trên, sử dụng dữ liệu cốt lõi, chúng tôi có thể tối ưu hóa bộ nhớ một cách hiệu quả. – sample

+0

Sqlite không phải là ORM ... Trình quản lý đồ thị đối tượng của nó – King

+0

Theo http://stackoverflow.com/a/524301/399741, Dữ liệu chính không phải là ORM. –

1

Sử dụng dữ liệu lõi, chúng tôi có thể tối ưu hóa bộ nhớ một cách hiệu quả.

+0

không chính xác; nếu tạo dự án phức tạp không bao giờ sử dụng coredata .... – user1005462

3

Có sự khác biệt lớn giữa coredata và sqlite.

Bản thân dữ liệu chính không phải là cơ sở dữ liệu mà nó chỉ là hệ thống theo dõi thay đổi một trình bao bọc trên các cửa hàng liên tục như SQLite (retrive, lưu các đối tượng vào lưu trữ liên tục). Bạn có thể có SQLite như RDBMS và coredata cơ bản của bạn có thể được sử dụng như một lớp để quản lý thay đổi đối với các thuộc tính của bảng (undo, redo, reset các thay đổi), nó cũng được tối ưu hóa trong việc quản lý bộ nhớ (faulting).

15

Ngoài việc là ORM (Mô hình quan hệ đối tượng) Bạn có thể so sánh Core-Data và SQLite dưới dạng;

SQLite:

  • tính năng có dữ liệu ép.
  • Hoạt động trên dữ liệu, được lưu trữ trên đĩa.
  • Có thể thả bảng và chỉnh sửa dữ liệu mà không cần tải chúng trong bộ nhớ.
  • Chậm so với dữ liệu chính.

Core Data:

  • Đừng có ràng buộc dữ liệu, nếu có yêu cầu cần phải thực hiện bằng cách logic kinh doanh.
  • Hoạt động trong bộ nhớ. (Dữ liệu cần được tải từ đĩa vào bộ nhớ)
  • Cần tải toàn bộ dữ liệu nếu cần thả bảng hoặc cập nhật.
  • nhanh về tạo kỷ lục. (Lưu chúng có thể tốn thời gian)

Bên cạnh đó ngoài SQLite như dữ liệu cốt lõi back-end có thể sử dụng XML hoặc định dạng nhị phân để lưu trữ dữ liệu vào đĩa.

+0

Cảm ơn bạn rất nhiều vì đã chia sẻ điều này. – swiftBoy

2

SQLite

chức năng chính là lưu trữ và lấy dữ liệu

Hoạt động trên dữ liệu được lưu trữ trên đĩa (hoặc tối thiểu và nạp từng bước)

Stores "câm" dữ liệu

Có thể giao dịch, an toàn luồng, đa sử dụng

Lưu vĩnh viễn vào đĩa (và thường tai nạn đàn hồi)

có thể được làm chậm để tạo ra hàng triệu hàng mới

Cung cấp hạn chế dữ liệu như phím "độc đáo"

Core Data

Chức năng chính là quản lý đồ thị (mặc dù đọc và ghi vào đĩa là một tính năng hỗ trợ quan trọng)

Hoạt động trên các đối tượng được lưu trữ trong bộ nhớ (mặc dù chúng có thể được tải từ ổ đĩa mềm)

trình với các đối tượng đầy đủ chính thức mà tự quản lý rất nhiều hành vi của họ và có thể được subclassed và tùy biến cho hành vi tiếp tục

không giao dịch, đơn ren, người dùng duy nhất (trừ khi bạn tạo toàn bộ một sự trừu tượng xung quanh lõi dữ liệu cung cấp những điều này)

Cần phải có một quá trình lưu

Lá ràng buộc dữ liệu sang bên business logic của chương trình

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