Chỉ áp dụng cho phiên bản Cloud Firestore Enterprise. |
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 có khả năng tương thích với MongoDB.
Bạn có thể tìm hiểu về chi phí của bộ nhớ này trên trang Giá.
Kích thước chuỗi
Kích thước chuỗi được tính bằng số byte được mã hoá UTF-8 + 1.
Sau đây đượ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
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 giá trị trường
Bảng sau đây cho biết kích thước của các 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 loại 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 |
Max Key | 1 byte |
Null | 1 byte |
Cụm từ thông dụng | (Độ dài mẫu + 1) + (Độ dài lựa chọn + 1) |
Dấu thời gian | 8 byte |
Chuỗi | Số lượng byte được mã hoá theo UTF-8 + 1 |
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 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 mỗi tên trường (ngoại trừ
_id
) - Tổng kích thước của mỗi 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 tập hợ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 chỉ mục
Kích thước của một mục chỉ mục 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ị trường
_id
- Tổng của các giá trị trường đã lập chỉ mục
- 48 byte bổ sung
Hãy xem xét một tài liệu trong tập hợp tasks
:
{
"_id": "my_task_id",
"type": "Personal",
"done": false,
"priority": 1,
"description": "Learn Cloud Firestore"
}
Đối với 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ì 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 chỉ mục sẽ được tạo với các trường được lập chỉ mục không có giá trị được đặt thành NULL
.
Bước tiếp theo
Tìm hiểu về giá.