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

Firebase cung cấp hai cơ sở dữ liệu tài liệu trên đám mây và ứng dụng khách có thể truy cập vào. Những khách hàng mới nên bắt đầu sử dụng Cloud Firestore:

  • Cloud Firestore là cơ sở dữ liệu tài liệu nên dùng tương thích với JSON dành cho doanh nghiệp, được hơn 250.000 nhà phát triển tin dùng. API này phù hợp với các ứng dụng có mô hình dữ liệu đa dạng thức đòi hỏi khả năng truy vấn, khả năng có thể mở rộng và khả năng hoạt động cao. Phiên bản này cũng cung cấp tính năng đồng bộ hoá ứng dụng có độ trễ thấp và truy cập vào dữ liệu ngoại tuyến.

  • Cơ sở dữ liệu theo thời gian thực là cơ sở dữ liệu JSON cũ của Firebase. API này phù hợp với các ứng dụng có mô hình dữ liệu đơn giản yêu cầu tra cứu đơn giản và đồng bộ hoá độ trễ thấp cùng khả năng mở rộng hạn chế.

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

Sau khi suy nghĩ về các điểm chính cần cân nhắc 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 các ưu và nhược điểm, thì phần này sẽ trình bày những điểm khác biệt khác giữa Cloud Firestore và Cơ sở dữ liệu theo thời gian thực.

Mô hình dữ liệu

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

Cloud Firestore ưu tiên Cơ sở dữ liệu theo thời gian thực
Lưu trữ dữ liệu dưới dạng tập hợp tài liệu.
  • Dữ liệu đơn giản rất 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 giúp việc sắp xếp trên quy mô lớn trở nên dễ dàng hơn nhờ sử dụng các bộ sưu tập con trong tài liệu.
  • Yêu cầu ít chuẩn hoá và làm phẳng dữ liệu hơn.

Tìm hiểu thêm về mô hình dữ liệu 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ức tạp và có thứ bậc khó sắp xếp trên quy mô lớn.

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

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

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

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

Trạng thái hiện diện

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

Cloud Firestore ưu tiên Cơ sở dữ liệu theo thời gian thực
Không được hỗ trợ sẵn. Bạn có thể xây dựng dựa trên khả năng hỗ trợ của Cơ sở dữ liệu theo thời gian thực cho sự hiện diện bằng cách đồng bộ hoá Cloud Firestore và Cơ sở dữ liệu theo thời gian thực bằng các Hàm đám mây Hãy xem bài viết Sự hiện diện của bản dựng trong Cloud Firestore. Hỗ trợ tính năng hiện diện.

Truy vấn

Truy xuất, 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.

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

Hoạt động ghi và giao dịch

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

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

Cloud Firestore ưu tiên Cơ sở dữ liệu theo thời gian thực
Cloud Firestore là một giải pháp đa khu vực và theo khu vực, có khả năng tự động mở rộng quy mô.
  • Giải pháp có độ trễ thấp với thời gian phản hồi thông thường không lớn hơn 30 mili giây.
  • 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 khác nhau, đảm bảo khả năng mở rộng trên toàn cầu và độ tin cậy cao.
  • Được cung cấp trong cấu hình theo khu vực hoặc nhiều khu vực trên khắp thế giới.
Hãy đọc thêm về các đặc điểm về hiệu suất và độ tin cậy của Cloud Firestore trong Thoả thuận mức độ cung cấp dịch vụ.
Cơ sở dữ liệu theo thời gian thực là một giải pháp theo khu vực.
  • Có trong cấu hình theo khu vực. Cơ sở dữ liệu chỉ được cung cấp theo vùng trong một khu vực.
  • Độ trễ cực thấp, với thời gian phản hồi thông thường không lớn hơn 10 mili giây. Một lựa chọn lý tưởng để đồng bộ hoá trạng thái thường xuyên.
Đọc thêm về các đặc điểm về hiệu suất và độ tin cậy của Cơ sở dữ liệu theo thời gian thực trong Thoả thuận mức độ dịch vụ.

Thời gian hoạt động

Cloud Firestore ưu tiên Cơ sở dữ liệu theo thời gian thực
Hiệu suất thời gian hoạt động cực kỳ cao.
  • Hiệu suất thời gian hoạt động điển hình là 99,999%.
  • Nếu tình trạng còn hàng là vô cùng quan trọng, chẳng hạn như trong các ứng dụng thương mại điện tử, hãy sử dụng Cloud Firestore.
Hiệu suất thời gian hoạt động cao.
  • Hiệu suất thời gian hoạt động điển hình là 99,95%.

Khả năng mở rộng

Cloud Firestore ưu tiên Cơ sở dữ liệu theo thời gian thực
Tự động chuyển tỷ lệ.
  • Điều chỉnh tỷ lệ hoàn toàn tự động. Giới hạn tỷ lệ là khoảng 1 triệu kết nối đồng thời và 10.000 lượt ghi/giây. Chúng tôi dự định sẽ tăng mức giới hạn này trong tương lai.
  • giới hạn về tốc độ ghi đối với từng tài liệu hoặc chỉ mục.
Việc mở rộng quy mô yêu cầu phân đoạn.
  • Mở rộng quy mô lên tới khoảng 200.000 kết nối đồng thời và 1.000 lượt ghi/giây trong một cơ sở dữ liệu. Việc mở rộng quy mô vượt ra ngoài phạm vi đó yêu cầu phải phân đoạn 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ốc độ ghi cho từng phần dữ liệu.

Tính bảo mật

Cloud Firestore ưu tiên Cơ sở dữ liệu theo thời gian thực
Quy tắc không phân tầng kết hợp việc uỷ quyền và xác thực.
  • Đọc và ghi từ SDK dành cho thiết bị di động được bảo mật bằng Quy tắc bảo mật của Cloud Firestore.
  • Đọc và ghi từ các SDK máy chủ được bảo mật bằng Quản lý danh tính và quyền truy cập (IAM).
  • Quy tắc không phân tầng trừ phi bạn sử dụng ký tự đại diện.
  • Quy tắc có thể ràng buộc truy vấn: Nếu kết quả của một 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.
Ngôn ngữ quy tắc xếp chồng phân tách việc uỷ quyền và xác thực.

Giá

Cả hai giải pháp này đều có trong Gói giá Spark và Blaze.

Cloud Firestore ưu tiên Cơ sở dữ liệu theo thời gian thực
Tính phí chủ yếu cho các thao tác được thực hiện trong cơ sở dữ liệu của bạn (đọc, ghi, xoá) và với tốc độ, băng thông và bộ nhớ thấp hơn.

Cloud Firestore hỗ trợ giới hạn chi tiêu hằng ngày cho các dự án App Engine, để đảm bảo bạn không chi tiêu quá mức mà bạn thấy thoải mái.

Hãy đọc thêm về các gói giá của Cloud Firestore.

Chỉ tính phí cho băng thông và bộ nhớ, nhưng ở tốc độ cao hơn.

Đọc thêm về Gói giá của Cơ sở dữ liệu theo thời gian thực.

Sử dụng Cloud Firestore và Cơ sở dữ liệu theo 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ùng một loại dữ liệu và các thư viện ứng dụng hoạt động theo cách tương tự nhau. Hãy lưu ý những điểm 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.

Tìm hiểu thêm về các tính năng có trong cả Cơ sở dữ liệu theo thời gian thựcCloud Firestore.

Bạn đã sẵn sàng chọn cơ sở dữ liệu chưa?

Hy vọng rằng phép so sánh này đã giúp bạn giải quyết được vấn đề về 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 dự án Firebase của mình.