Tính toán kích thước bộ nhớ

Trang này mô tả kích thước bộ nhớ của tài liệu, tên tài liệu, trường và mục chỉ mục trong Cloud Firestore.

Bạn có thể tìm hiểu về chi phí của bộ nhớ này tại Cloud Firestore Giá.

Kích thước chuỗi

Kích thước chuỗi được tính bằng số byte được mã hoá theo UTF-8 + 1.

Sau đây được lưu trữ dưới dạng chuỗi:

  • Mã bộ sưu tập
  • Mã tài liệu chuỗi
  • Tên tài liệu
  • Tên trường
  • Giá trị trường chuỗi

Ví dụ:

  • Mã bộ sưu tập tasks sử dụng 5 byte + 1 byte, tổng cộng là 6 byte.
  • Tên trường description sử dụng 11 byte + 1 byte, tổng cộng là 12 byte.

Kích thước mã tài liệu

Kích thước của mã tài liệu là kích thước chuỗi cho mã chuỗi hoặc 8 byte cho mã số nguyên.

Kích thước tên tài liệu

Kích thước của tên tài liệu là tổng của:

  • Kích thước của từng mã bộ sưu tập và mã tài liệu trong đường dẫn đến tài liệu
  • 16 byte bổ sung

Đối với tài liệu trong bộ sưu tập con users/jeff/tasks có mã tài liệu chuỗi là my_task_id, kích thước tên tài liệu là 6 + 5 + 6 + 11 + 16 = 44 byte:

  • 6 byte cho mã bộ sưu tập users
  • 5 byte cho mã tài liệu jeff
  • 6 byte cho mã bộ sưu tập tasks
  • 11 byte cho mã tài liệu my_task_id
  • 16 byte bổ sung

Kích thước giá trị trường

Bảng sau đây cho biết kích thước của giá trị trường theo loại.

Loại Kích thước
Mảng Tổng kích thước của các giá trị
Boolean 1 byte
Byte Độ dài byte
Ngày và giờ 8 byte
Số dấu phẩy động 8 byte
Điểm địa lý 16 byte
Số nguyên 8 byte
Bản đồ Kích thước của bản đồ, được tính theo cách tương tự như kích thước tài liệu
Null 1 byte
Tài liệu tham khảo Kích thước tên tài liệu
Chuỗi văn bản Số byte được mã hoá theo UTF-8 + 1
Vectơ 8 byte cho mỗi phương diện

Ví dụ: trường boolean có tên done sẽ sử dụng 6 byte:

  • 5 byte cho tên trường done
  • 1 byte cho giá trị boolean

Kích thước tài liệu

Kích thước của tài liệu là tổng của:

Ví dụ này dành cho tài liệu trong bộ sưu tập con users/jeff/tasks có mã tài liệu chuỗi là my_task_id:

 - "type": "Personal"
 - "done": false
 - "priority": 1
 - "description": "Learn Cloud Firestore"

Tổng kích thước của các trường là 71 byte:

Tên và giá trị trường Kích thước trường tính bằng byte
"type": "Personal" 14
5 cho tên trường + 9 cho giá trị chuỗi của trường
"done": false 6
5 cho tên trường + 1 cho giá trị boolean của trường
"priority": 1 17
9 cho tên trường + 8 cho giá trị số nguyên của trường
"description": "Learn Cloud Firestore" 34
12 cho tên trường + 22 cho giá trị chuỗi của trường

Vậy kích thước tài liệu là 44 + 71 + 32 = 147 byte:

  • 44 byte cho tên tài liệu
  • 71 byte cho các trường
  • 32 byte bổ sung

Kích thước mục chỉ mục

Kích thước mục chỉ mục được tính như sau đối với chỉ mục một trường và chỉ mục tổng hợp.

Kích thước mục chỉ mục một trường

Kích thước của mục chỉ mục một trường phụ thuộc vào việc chỉ mục được giới hạn ở một bộ sưu tập hay một nhóm bộ sưu tập.

Phạm vi bộ sưu tập

Kích thước của mục trong chỉ mục một trường có phạm vi bộ sưu tập là tổng của:

Hãy xem xét một tài liệu trong bộ sưu tập con users/jeff/tasks có mã tài liệu chuỗi là my_task_id:

 - "type": "Personal"
 - "done": false
 - "priority": 1
 - "description": "Learn Cloud Firestore"

Đối với chỉ mục một trường có phạm vi bộ sưu tập lập chỉ mục trường done, tổng kích thước của mục trong chỉ mục này là 109 byte:

  • 44 byte cho tên tài liệu users/jeff/tasks/my_task_id
  • 27 byte cho tên tài liệu của tài liệu mẹ users/jeff
  • 5 byte cho tên trường done
  • 1 byte cho giá trị trường boolean
  • 32 byte bổ sung

Phạm vi nhóm bộ sưu tập

Kích thước của mục trong chỉ mục một trường có phạm vi nhóm bộ sưu tập là tổng của:

  • Kích thước tên tài liệu của tài liệu được lập chỉ mục
  • Kích thước chuỗi của tên trường được lập chỉ mục
  • Kích thước của giá trị trường được lập chỉ mục
  • 48 byte bổ sung

Hãy xem xét một tài liệu trong bộ sưu tập con users/jeff/tasks có mã tài liệu chuỗi là my_task_id:

 - "type": "Personal"
 - "done": false
 - "priority": 1
 - "description": "Learn Cloud Firestore"

Đối với chỉ mục một trường có phạm vi nhóm bộ sưu tập lập chỉ mục trường done, tổng kích thước của mục trong chỉ mục này là 98 byte:

  • 44 byte cho tên tài liệu users/jeff/tasks/my_task_id
  • 5 byte cho tên trường done
  • 1 byte cho giá trị trường boolean
  • 48 byte bổ sung

Kích thước mục chỉ mục tổng hợp

Kích thước của mục trong chỉ mục tổng hợp phụ thuộc vào việc chỉ mục được giới hạn ở một bộ sưu tập hay một nhóm bộ sưu tập.

Phạm vi bộ sưu tập

Kích thước của mục chỉ mục trong chỉ mục tổng hợp có phạm vi bộ sưu tập là tổng của:

Hãy xem xét một tài liệu trong bộ sưu tập con users/jeff/tasks có mã tài liệu chuỗi là my_task_id:

 - "type": "Personal"
 - "done": false
 - "priority": 1
 - "description": "Learn Cloud Firestore"

Đối với chỉ mục tổng hợp có phạm vi bộ sưu tập lập chỉ mục các trường donepriority (cả hai đều tăng dần), tổng kích thước của mục trong chỉ mục này là 112 byte:

  • 44 byte cho tên tài liệu users/jeff/tasks/my_task_id
  • 27 byte cho tên tài liệu của tài liệu mẹ users/jeff
  • 1 byte cho giá trị trường boolean
  • 8 byte cho giá trị trường số nguyên
  • 32 byte bổ sung

Phạm vi nhóm bộ sưu tập

Kích thước của mục chỉ mục trong chỉ mục tổng hợp có phạm vi nhóm bộ sưu tập là tổng của:

  • Kích thước tên tài liệu của tài liệu được lập chỉ mục
  • Tổng các giá trị trường được lập chỉ mục
  • 32 byte bổ sung

Hãy xem xét một tài liệu trong bộ sưu tập con users/jeff/tasks có mã tài liệu chuỗi là my_task_id:

 - "type": "Personal"
 - "done": false
 - "priority": 1
 - "description": "Learn Cloud Firestore"

Đối với chỉ mục tổng hợp có phạm vi nhóm bộ sưu tập lập chỉ mục các trường donepriority (cả hai đều tăng dần), tổng kích thước của mục chỉ mục trong chỉ mục này là 85 byte:

  • 44 byte cho tên tài liệu users/jeff/tasks/my_task_id
  • 1 byte cho giá trị trường boolean
  • 8 byte cho giá trị trường số nguyên
  • 32 byte bổ sung

Kích thước mục chỉ mục tìm kiếm văn bản

Kích thước của mục chỉ mục tìm kiếm văn bản trong chỉ mục là tổng của:

  • Kích thước chuỗi của tên bộ sưu tập
  • Kích thước của giá trị mã tài liệu
  • Tổng số byte từ các giá trị trường được lập chỉ mục (x2)
  • 48 byte bổ sung cho siêu dữ liệu chung

Hãy xem xét ví dụ về sự kiện chèn cho tài liệu có mã tài liệu my_task_id trong bộ sưu tập tasks:

Tổng kích thước của mục chỉ mục tìm kiếm văn bản trên description là 105 byte dựa trên:

  • 6 byte cho tên bộ sưu tập tasks
  • 11 byte cho giá trị mã tài liệu
  • 44 byte, dựa trên 22 byte cho trường description x2
  • 48 byte bổ sung cho siêu dữ liệu chung

Kích thước mục chỉ mục không gian địa lý

Kích thước của mục chỉ mục không gian địa lý trong chỉ mục là tổng của:

  • Kích thước chuỗi của tên bộ sưu tập
  • Kích thước của giá trị mã tài liệu
  • 128 byte cho mỗi điểm địa lý được lập chỉ mục
  • 48 byte bổ sung cho siêu dữ liệu chung

Hãy xem xét ví dụ về sự kiện chèn cho tài liệu có mã tài liệu my_place trong bộ sưu tập places:

{
     "type": "Restaurant",
     "visited": false,
     "priority": 1,
     "location": GeoPoint(longitude, latitude)
}

Tổng kích thước của mục chỉ mục không gian địa lý trên location là 192 byte dựa trên:

  • 7 byte cho tên bộ sưu tập places
  • 9 byte cho mã tài liệu
  • 128 byte cho trường location
  • 48 byte bổ sung cho siêu dữ liệu chung

Bước tiếp theo

Tìm hiểu về Cloud Firestore giá.