Tôi đến từ thế giới cơ sở dữ liệu quan hệ sau đó tôi tìm thấy điều Datastore này. phải mất vài ngày để có được hang của nó. cũng có một số phát hiện của tôi.
Bạn hẳn đã biết rằng Datastore được xây dựng theo tỷ lệ và đó là điều tách biệt nó khỏi RDMBS. để mở rộng quy mô tốt hơn với tập dữ liệu lớn, App Engine đã thực hiện một số thay đổi (một số có nghĩa là rất nhiều thay đổi).
Cấu trúc RDBMS VS DataStore
Trong cơ sở dữ liệu, chúng ta thường cấu trúc dữ liệu của mình trong Bảng, Hàng trong Kho dữ liệu, nó trở thành Loại và Thực thể .
Mối quan hệ
trong RDBMS, hầu hết mọi người theo dõi mối quan hệ Một-Một, Nhiều-Một, Nhiều-Nhiều, Trong Datastore, Vì nó có điều "Không tham gia" nhưng chúng ta vẫn có thể đạt được sự bình thường hóa bằng cách sử dụng " ReferenceProperty " Ví dụ: Ví dụ về mối quan hệ một đối một .
Các chỉ mục
Thông thường trong RDMBS, chúng tôi tạo các chỉ mục như Khóa chính, Khóa ngoài, Khóa duy nhất và Khóa chỉ mục để tăng tốc tìm kiếm và tăng hiệu suất cơ sở dữ liệu của chúng tôi. Trong kho dữ liệu, bạn phải tạo ít nhất một chỉ mục cho mỗi loại (nó sẽ tự động tạo dù bạn có thích hay không) vì kho dữ liệu tìm kiếm thực thể của bạn trên cơ sở các chỉ mục này và tin rằng đó là phần tốt nhất, trong RDBMS bạn có thể tìm kiếm bằng cách sử dụng trường không chỉ mục mặc dù sẽ mất một thời gian nhưng nó sẽ. Trong Datastore bạn không thể tìm kiếm bằng thuộc tính phi chỉ mục.
Đếm
Trong RDMBS, việc đếm (*) dễ dàng hơn nhiều nhưng trong kho dữ liệu, Vui lòng thậm chí không nghĩ nó theo cách thông thường (Vâng có chức năng đếm) vì nó có 1000 Giới hạn và sẽ tốn nhiều thao tác nhỏ như thực thể. không tốt nhưng chúng tôi luôn có những lựa chọn tốt, chúng tôi có thể sử dụng Shard Counters .
Những ràng buộc độc đáo
Trong RDMBS, Chúng tôi yêu thích tính năng này phải không? nhưng Datastore có cách riêng của nó. bạn không thể định nghĩa một thuộc tính là duy nhất :(.
Truy vấn
GAE Datatore cung cấp một tính năng tốt hơn nhiều THÍCH (Ôi không! Kho dữ liệu không có từ khóa THÍCH) SQL là GQL .
Chèn / Cập nhật / Xóa / Chọn dữ liệu
Đây là nơi mà tất cả chúng ta quan tâm, vì trong RDMBS, chúng tôi yêu cầu một truy vấn cho Chèn, Cập nhật, Xóa và Chọn giống như RDBMS, Datastore đã đặt, xóa, lấy (không quá phấn khích) vì Kho dữ liệu đặt hoặc nhận về các điều khoản Viết, Đọc, Hoạt động nhỏ ( Chi phí đọc cho các cuộc gọi kho dữ liệu ) và đó là nơi Mô hình hóa dữ liệu hoạt động. bạn phải giảm thiểu các hoạt động này và giữ cho ứng dụng của bạn chạy. Để giảm thao tác Đọc, bạn có thể sử dụng Memcache .