Chọn cơ sở dữ liệu: Cloud Firestore hoặc Cơ sở dữ liệu thời gian thực

Firebase cung cấp hai giải pháp cơ sở dữ liệu dựa trên đám mây, khách hàng có thể truy cập, hỗ trợ đồng bộ hóa dữ liệu theo thời gian thực:

  • Đám mây FireStore là cơ sở dữ liệu mới nhất căn cứ hỏa lực cho phát triển ứng dụng di động. Nó được xây dựng dựa trên những thành công của Cơ sở dữ liệu thời gian thực với một mô hình dữ liệu mới, trực quan hơn. Cloud Firestore cũng có các truy vấn phong phú hơn, nhanh hơn và mở rộng quy mô hơn Cơ sở dữ liệu thời gian thực.

  • Cơ sở dữ liệu thời gian thực là cơ sở dữ liệu ban đầu căn cứ hỏa lực của. Đó là một giải pháp hiệu quả, có độ trễ thấp cho các ứng dụng dành cho thiết bị di động yêu cầu trạng thái được đồng bộ hóa giữa các máy khách trong thời gian thực.

Firebase đề xuất cơ sở dữ liệu nào?

Lựa chọn giải pháp cơ sở dữ liệu của bạn sẽ phụ thuộc vào nhiều yếu tố, nhưng khi nói đến một số tính năng nhất định, chúng tôi có thể đưa ra khuyến nghị về cơ sở dữ liệu nào phù hợp với bạn.

Cả hai giải pháp đều cung cấp:

  • SDK ưu tiên ứng dụng khách, không có máy chủ để triển khai và duy trì
  • Cập nhật thời gian thực
  • Bậc miễn phí, sau đó trả tiền cho những gì bạn sử dụng

Cân nhắc chính

Ngoài các tính năng cốt lõi tuyệt vời phổ biến cho cả hai cơ sở dữ liệu, hãy nghĩ xem bất kỳ hoặc tất cả các cân nhắc được liệt kê dưới đây sẽ ảnh hưởng như thế nào đến sự thành công của ứng dụng của bạn.

Vai trò của cơ sở dữ liệu
Ứng dụng của tôi sử dụng cơ sở dữ liệu cho ...
Chủ yếu đồng bộ hóa dữ liệu, với truy vấn cơ bản.
Nếu bạn không cần truy vấn cao cấp, phân loại và các giao dịch, chúng tôi khuyên Cơ sở dữ liệu thời gian thực.
Truy vấn, sắp xếp và giao dịch nâng cao.
Nếu bạn cần sự tương tác phức tạp với dữ liệu của bạn, ví dụ như trong các ứng dụng thương mại điện tử, chúng tôi khuyên Mây FireStore.
Hoạt động trên dữ liệu
Việc sử dụng cơ sở dữ liệu của ứng dụng của tôi trông giống như ...
Một vài GB dữ liệu trở xuống thay đổi thường xuyên.
Nếu ứng dụng của bạn sẽ được gửi một dòng cập nhật nhỏ, chẳng hạn như trong một ứng dụng bảng trắng kỹ thuật số, chúng tôi đề nghị cơ sở dữ liệu thời gian thực.
Dữ liệu hàng trăm GB đến TB được đọc thường xuyên hơn nhiều so với dữ liệu được thay đổi.
Đối với các tập dữ liệu rất lớn, và khi hoạt động hàng loạt thường được cần đến, chúng tôi khuyên Mây FireStore.
Mô hình dữ liệu
Tôi muốn cấu trúc dữ liệu của mình là ...
Một cây JSON đơn giản.
Đối với JSON dữ liệu phi cấu trúc, chúng tôi đề nghị cơ sở dữ liệu thời gian thực.
Tài liệu được tổ chức thành các bộ sưu tập.
Đối với tài liệu và các bộ sưu tập có cấu trúc, chúng tôi khuyên Mây FireStore.
khả dụng
Nhu cầu về tính khả dụng của tôi là ...
Đảm bảo thời gian hoạt động cực cao 99,999%.
Nếu sẵn có là điều quan trọng nhất, ví dụ như trong các ứng dụng thương mại điện tử, chúng tôi khuyên Mây FireStore.
Đảm bảo thời gian hoạt động ít nhất 99,95%.
Khi sẵn sàng rất cao nhưng không quan trọng là chấp nhận được, chúng tôi đề nghị một trong hai đám mây FireStore hoặc cơ sở dữ liệu thời gian thực.
Truy vấn ngoại tuyến về dữ liệu cục bộ
Ứng dụng của tôi sẽ cần thực hiện các truy vấn trên các thiết bị có kết nối hạn chế hoặc không có ...
Thường xuyên.
Đối với khả năng truy vấn phức tạp trên dữ liệu địa phương khi người dùng đang ẩn, chúng tôi khuyên Mây FireStore.
Hiếm khi hoặc không bao giờ.
Nếu bạn mong đợi người dùng của bạn được liên tục trực tuyến, chúng tôi khuyên Mây FireStore hoặc cơ sở dữ liệu thời gian thực.
Số lượng phiên bản cơ sở dữ liệu
Trong các dự án cá nhân của mình, tôi cần sử dụng ...
Nhiều cơ sở dữ liệu, ví dụ một cơ sở dữ liệu cho từng khách hàng lớn.
Kể từ khi nó cho phép bạn thêm nhiều cơ sở dữ liệu cho một dự án căn cứ hỏa lực duy nhất, chúng tôi khuyên Cơ sở dữ liệu thời gian thực.
Chỉ là một cơ sở dữ liệu duy nhất.
Nếu bạn cần một cơ sở dữ liệu duy nhất, chúng tôi khuyên bạn nên hoặc đám mây FireStore hoặc cơ sở dữ liệu thời gian thực.

Một số điều quan trọng khác cần xem xét là gì?

Sau khi suy nghĩ về những cân nhắc quan trọng trước đó, bạn có thể sẵn sàng chọn một cơ sở dữ liệu . Nếu bạn vẫn đang cân nhắc ưu và nhược điểm, phần này sẽ đề cập đến những khác biệt khác giữa Cloud Firestore và Cơ sở dữ liệu thời gian thực.

Mô hình dữ liệu

Cả Cơ sở dữ liệu thời gian thực và Cloud Firestore đều là Cơ sở dữ liệu NoSQL.

Cơ sở dữ liệu thời gian thực Cloud Firestore
Lưu trữ dữ liệu dưới dạng một cây JSON lớn.
  • Dữ liệu đơn giản rất dễ lưu trữ.
  • Dữ liệu phân cấp, phức tạp khó tổ chức hơn trên quy mô lớn.

Tìm hiểu thêm về mô hình cơ sở dữ liệu dữ liệu thời gian thực .

Lưu trữ dữ liệu dưới dạng bộ sưu tập tài liệu.
  • Dữ liệu đơn giản dễ lưu trữ trong các tài liệu, rất giống với JSON.
  • Dữ liệu phân cấp, phức tạp dễ tổ chức hơn trên quy mô lớn, bằng cách sử dụng các bộ sưu tập con bên trong tài liệu.
  • Yêu cầu ít chuẩn hóa và làm phẳng dữ liệu hơn.

Tìm hiểu thêm về mô hình dữ liệu FireStore đám mây .

Hỗ trợ thời gian thực và ngoại tuyến

Cả hai đều có SDK ưu tiên cho thiết bị di động, thời gian thực và cả hai đều hỗ trợ lưu trữ dữ liệu cục bộ cho các ứng dụng sẵn sàng ngoại tuyến.

Cơ sở dữ liệu thời gian thực Cloud Firestore
Hỗ trợ ngoại tuyến cho ứng dụng iOS và Android. Hỗ trợ ngoại tuyến cho các ứng dụng khách iOS, Android và web.

Sự có mặt

Có thể hữu ích khi biết khi nào khách hàng trực tuyến hay ngoại tuyến. Cơ sở dữ liệu thời gian thực của Firebase có thể ghi lại trạng thái kết nối của máy khách và cung cấp các bản cập nhật mỗi khi trạng thái kết nối của máy khách thay đổi.

Cơ sở dữ liệu thời gian thực Cloud Firestore
Sự hiện diện được hỗ trợ. Không được hỗ trợ nguyên bản. Bạn có thể tận dụng sự hỗ trợ của Cơ sở dữ liệu thời gian thực để hiện diện bằng cách đồng bộ hóa Cloud Firestore và Cơ sở dữ liệu thời gian thực bằng cách sử dụng Chức năng đám mây. Xem sự hiện diện tích xây dựng trong Cloud FireStore .

Truy vấn

Lấy, sắp xếp và lọc dữ liệu từ một trong hai cơ sở dữ liệu thông qua các truy vấn.

Cơ sở dữ liệu thời gian thực Cloud Firestore
Truy vấn sâu với giới hạn phân loại và lọc chức năng .
  • Truy vấn có thể sắp xếp hoặc lọc trên một tài sản, nhưng không phải cả hai.
  • Các truy vấn sâu theo mặc định: chúng luôn trả về toàn bộ cây con.
  • Các truy vấn có thể truy cập dữ liệu ở bất kỳ mức độ chi tiết nào, tùy thuộc vào các giá trị nút lá riêng lẻ trong cây JSON.
  • Truy vấn không yêu cầu chỉ mục; tuy nhiên, hiệu suất của các truy vấn nhất định sẽ giảm khi tập dữ liệu của bạn phát triển.
Truy vấn được lập chỉ mục với hợp chất phân loại và lọc .
  • Bạn có thể chuỗi các bộ lọc và kết hợp lọc và sắp xếp trên một thuộc tính trong một truy vấn duy nhất.
  • Các truy vấn nông: chúng chỉ trả về tài liệu trong một bộ sưu tập hoặc nhóm bộ sưu tập cụ thể và không trả về dữ liệu bộ sưu tập con.
  • Các truy vấn phải luôn trả về toàn bộ tài liệu.
  • Các truy vấn được lập chỉ mục theo mặc định: Hiệu suất truy vấn tỷ lệ thuận với kích thước của tập kết quả, không phải tập dữ liệu của bạn.

Viết và giao dịch

Cơ sở dữ liệu thời gian thực Cloud Firestore
Các thao tác ghi và giao dịch cơ bản.
  • Ghi dữ liệu thông qua bộ và cập nhật các hoạt động.
  • Giao dịch là nguyên tử trên một cây con cụ thể dữ liệu.
Các thao tác ghi và giao dịch nâng cao.
  • Hoạt động ghi dữ liệu thông qua bộ và cập nhật các hoạt động cũng như biến đổi tiên tiến như mảng và các nhà khai thác số.
  • Giao dịch nguyên tử có thể đọc và ghi dữ liệu từ bất kỳ phần nào của cơ sở dữ liệu.

Độ tin cậy và hiệu suất

Cơ sở dữ liệu thời gian thực Cloud Firestore
Cơ sở dữ liệu thời gian thực là một giải pháp khu vực.
  • Có sẵn trong các cấu hình khu vực. Cơ sở dữ liệu được giới hạn trong phạm vi khả dụng của khu vực trong một khu vực.
  • Độ trễ cực thấp, tùy chọn lý tưởng để đồng bộ hóa trạng thái thường xuyên.
Đọc thêm về hiệu suất cơ sở dữ liệu thời gian thực và đặc điểm độ tin cậy trong Service Level Agreement .
Cloud Firestore là một giải pháp khu vực và đa khu vực có thể mở rộng quy mô tự động.
  • Lưu trữ dữ liệu của bạn trên nhiều trung tâm dữ liệu ở các khu vực riêng biệt, đảm bảo khả năng mở rộng toàn cầu và độ tin cậy cao.
  • Có sẵn trong các cấu hình khu vực hoặc đa khu vực trên khắp thế giới.
Đọc thêm về Cloud FireStore hiệu suất và độ tin cậy đặc điểm trong Service Level Agreement .

Khả năng mở rộng

Cơ sở dữ liệu thời gian thực Cloud Firestore
Chia tỷ lệ yêu cầu phân tích.
  • Mở rộng quy mô lên khoảng 200.000 kết nối đồng thời và 1.000 lần ghi / giây trong một cơ sở dữ liệu duy nhất. Việc mở rộng quy mô vượt ra ngoài yêu cầu phải làm sắc nét dữ liệu của bạn trên nhiều cơ sở dữ liệu.
  • Không có giới hạn cục bộ về tỷ lệ ghi vào từng phần dữ liệu.
Chia tỷ lệ là tự động.
  • Cân hoàn toàn tự động. Hiện tại, giới hạn mở rộng là khoảng 1 triệu kết nối đồng thời và 10.000 lần ghi / giây. Chúng tôi có kế hoạch tăng các giới hạn này trong tương lai.
  • giới hạn về tỷ lệ ghi vào tài liệu cá nhân hoặc chỉ số.

Bảo vệ

Cơ sở dữ liệu thời gian thực Cloud Firestore
Ngôn ngữ quy tắc xếp tầng phân tách ủy quyền và xác thực. Quy tắc không phân tầng kết hợp ủy quyền và xác thực.
  • Đọc và viết từ SDK di động được bảo đảm bằng của Cloud Security Rules FireStore .
  • Đọc và viết từ SDK máy chủ được bảo đảm bằng nhận dạng và quản lý truy cập (IAM) .
  • Các quy tắc không phân tầng trừ khi bạn sử dụng ký tự đại diện.
  • Các quy tắc có thể hạn chế truy vấn: Nếu kết quả của truy vấn có thể chứa dữ liệu mà người dùng không có quyền truy cập, thì toàn bộ truy vấn sẽ không thành công.

Định giá

Cả hai giải pháp có sẵn trên Spark và kế hoạch giá Blaze .

Cơ sở dữ liệu thời gian thực Cloud Firestore
Phí chỉ dành cho băng thông và lưu trữ, nhưng với tốc độ cao hơn.

Đọc thêm về kế hoạch giá Cơ sở dữ liệu thời gian thực .

Phí chủ yếu vào các hoạt động thực hiện trong cơ sở dữ liệu của bạn (đọc, ghi, xóa) và, với một tốc độ thấp hơn, băng thông và lưu trữ.

Đám mây FireStore hỗ trợ hàng ngày giới hạn chi tiêu cho các dự án App Engine, để đảm bảo bạn không đi qua các chi phí bạn thấy thoải mái.

Đọc thêm về kế hoạch giá Mây FireStore .

Sử dụng Cloud Firestore và Cơ sở dữ liệu thời gian thực

Bạn có thể sử dụng cả hai cơ sở dữ liệu trong cùng một ứng dụng hoặc dự án Firebase. Cả hai cơ sở dữ liệu NoSQL đều có thể lưu trữ các loại dữ liệu giống nhau và các thư viện máy khách hoạt động theo cách tương tự. Hãy ghi nhớ những khác biệt nêu trên nếu bạn quyết định sử dụng cả hai cơ sở dữ liệu trong ứng dụng của bạn .

Tìm hiểu thêm về các tính năng có sẵn trong cả hai cơ sở dữ liệu thời gian thựcđám mây FireStore .

Sẵn sàng để chọn một cơ sở dữ liệu?

Hy vọng rằng so sánh này đã giúp bạn giải quyết một giải pháp cơ sở dữ liệu Firebase. Bây giờ bạn có thể tìm hiểu cách thêm cơ sở dữ liệu vào các dự án Firebase của mình.