Trang này mô tả kích thước bộ nhớ của tài liệu, trường và mục nhập chỉ mục trong Cloud Firestore.
Bạn có thể tìm hiểu về chi phí của bộ nhớ này trên trang Định 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.
Những nội dung sau được lưu trữ dưới dạng chuỗi:
- Tên bộ sưu tập
- Tên trường
- Giá trị trường chuỗi (bao gồm cả
_id)
Ví dụ:
- Tên bộ sưu tập
taskssử dụng 5 byte + 1 byte, tổng cộng là 6 byte. - Tên trường
descriptionsử dụng 11 byte + 1 byte, tổng cộng là 12 byte.
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 |
| Dữ liệu nhị phân | Độ dài byte + 1 cho kiểu phụ không chung chung (không phải 0) |
| Ngày | 8 byte |
| Giường đôi | 8 byte |
| Double128 | 16 byte |
| Số nguyên 32 bit | 4 byte |
| Số nguyên 64 bit (dài) | 8 byte |
| Đối tượng | Tổng kích thước chuỗi của từng tên trường và kích thước của từng giá trị trường trong đối tượng được nhúng |
| Khoá tối thiểu | 1 byte |
| Khoá tối đa | 1 byte |
| Null | 1 byte |
| Cụm từ thông dụng | (Độ dài mẫu + 1) + (Độ dài tuỳ chọn + 1) |
| Dấu thời gian | 8 byte |
| Chuỗi | Số byte được mã hoá theo UTF-8 + 1 |
Ví dụ: một trường boolean có tên là 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 một tài liệu là tổng của:
- Kích thước chuỗi của tên bộ sưu tập
- Tổng kích thước chuỗi của từng tên trường (ngoại trừ
_id) - Tổng kích thước của từng giá trị trường (bao gồm cả
_id) - 48 byte bổ sung
Ví dụ này dành cho một tài liệu trong bộ sưu tập tasks:
{
"_id": "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à 78 byte:
| Tên và giá trị trường | Kích thước trường tính bằng byte |
|---|---|
"_id": "my_task_id" |
11 cho giá trị chuỗi của trường |
"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 + 4 cho giá trị số nguyên 32 bit 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à 6 + 78 + 48 = 132 byte:
- 6 cho tên bộ sưu tập
- 78 byte cho các trường
- 48 byte bổ sung
Kích thước mục nhập chỉ mục
Kích thước của một mục nhập chỉ mục trong một 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ị trường
_id - Tổng các 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 tasks:
{
"_id": "my_task_id",
"type": "Personal",
"done": false,
"priority": 1,
"description": "Learn Cloud Firestore"
}
Đối với một chỉ mục trên các trường done và priority (cả hai đều tăng dần), tổng kích thước của mục nhập chỉ mục trong chỉ mục này là 70 byte:
- 6 byte cho tên bộ sưu tập
tasks - 11 byte cho giá trị trường
_id - 1 byte cho giá trị trường boolean
- 4 byte cho giá trị trường số nguyên 32 bit
- 48 byte bổ sung
Đối với chỉ mục thưa thớt, nếu một tài liệu không chứa bất kỳ trường nào, thì sẽ không có mục nhập chỉ mục nào được tạo. Nếu một tài liệu chứa ít nhất một trong các trường được lập chỉ mục, thì một mục nhập chỉ mục sẽ được tạo với các trường được lập chỉ mục bị thiếu được đặt thành NULL.
Bước tiếp theo
Tìm hiểu về định giá.