Hết hạnSau giây MongoDB
Tài liệu này cung cấp phần giới thiệu về tính năng thu thập “time to live” hoặc “” của MongoDB. Được triển khai dưới dạng một loại chỉ mục đặc biệt, các bộ sưu tập TTL cho phép lưu trữ dữ liệu trong MongoDB và tự động xóa dữ liệu sau một khoảng thời gian nhất định. Điều này lý tưởng cho một số loại thông tin như dữ liệu sự kiện do máy tạo, nhật ký và thông tin phiên chỉ cần tồn tại trong cơ sở dữ liệu trong một khoảng thời gian giới hạn Show
Tiểu sửCác bộ sưu tập hết hạn theo cách của một chỉ mục đặc biệt theo dõi thời gian chèn kết hợp với một luồng nền trong đó thường xuyên loại bỏ các bộ sưu tập đã hết hạn. Bạn có thể sử dụng tính năng này để hết hạn dữ liệu từ và Sử dụng tùy chọn expireafterSeconds cho phương thức kết hợp với giá trị TTL tính bằng giây để tạo bộ sưu tập sắp hết hạn. Bộ sưu tập TTL đặt cờ bộ sưu tập, có nghĩa là MongoDB phải phân bổ nhiều dung lượng đĩa hơn so với kích thước dữ liệu. Cách tiếp cận này giúp giảm thiểu khả năng phân mảnh bộ nhớ do thao tác xóa thường xuyên gây ra và dẫn đến các kiểu sử dụng bộ nhớ dễ dự đoán hơn. 注解 Khi luồng TTL đang hoạt động, bạn sẽ thấy thao tác xóa trong đầu ra của hoặc trong dữ liệu được thu thập bởi Hạn chếXem xét các hạn chế sau
注解 Chỉ mục TTL dữ liệu hết hạn bằng cách xóa tài liệu trong tác vụ nền chạy mỗi phút một lần. Do đó, chỉ mục TTL không đảm bảo rằng các tài liệu hết hạn sẽ không tồn tại trong bộ sưu tập. Xem xét điều đó
Bật TTL cho Bộ sưu tậpCách đặt TTL trên bộ sưu tập “ log. sự kiện ” trong một giờ, sử dụng lệnh sau tại trình bao. db.log.events.ensureIndex( { "status": 1 }, { expireAfterSeconds: 3600 } ) Trường trạng thái phải chứa thông tin ngày/giờ. MongoDB sẽ tự động xóa tài liệu khỏi bộ sưu tập này sau khi giá trị của trạng thái cũ hơn một giờ. Nhân rộngChủ đề nền TTL chỉ chạy trên các thành viên của. các thành viên sẽ sao chép các hoạt động xóa từ bầu cử sơ bộ NHƯNG CÂU CHUYỆN LIÊN QUANĐANG TẢI Hackernoon hq - po box 2206, edwards, colorado 81632, usa Chỉ mục TTL là chỉ mục trường đơn đặc biệt mà MongoDB có thể sử dụng để tự động xóa tài liệu khỏi bộ sưu tập sau một khoảng thời gian nhất định. Hết hạn dữ liệu hữu ích đối với một số loại thông tin như dữ liệu sự kiện do máy tạo, nhật ký và thông tin phiên chỉ cần tồn tại trong cơ sở dữ liệu trong một khoảng thời gian hữu hạn Để tạo chỉ mục TTL, hãy sử dụng phương thức có tùy chọn Ví dụ: để tạo chỉ mục TTL trên trường sao chép db.eventlog.ensureIndex( { "lastModifiedDate": 1 }, { expireAfterSeconds: 3600 } ) Cư xửHết hạn dữ liệuCác chỉ mục TTL hết hạn tài liệu sau khi số giây được chỉ định đã trôi qua kể từ giá trị trường được lập chỉ mục; . e. ngưỡng hết hạn là giá trị trường được lập chỉ mục cộng với số giây được chỉ định Nếu trường là một mảng và có nhiều giá trị ngày trong chỉ mục, MongoDB sẽ sử dụng giá trị thấp nhất (i. e. sớm nhất) giá trị ngày trong mảng để tính ngưỡng hết hạn Nếu trường được lập chỉ mục trong tài liệu không phải là một hoặc một mảng chứa (các) giá trị ngày, thì tài liệu sẽ không hết hạn Nếu tài liệu không chứa trường được lập chỉ mục, tài liệu sẽ không hết hạn Xóa hoạt độngChuỗi nền trong đọc các giá trị trong chỉ mục và xóa hết hạn khỏi bộ sưu tập Khi luồng TTL đang hoạt động, bạn sẽ thấy các hoạt động xóa trong đầu ra của hoặc trong dữ liệu được thu thập bởi. Thời gian của Thao tác XóaKhi bạn tạo chỉ mục TTL trong , luồng TTL có thể bắt đầu xóa tài liệu trong khi chỉ mục đang được tạo. Nếu bạn xây dựng một chỉ mục TTL ở phía trước, MongoDB sẽ bắt đầu xóa các tài liệu đã hết hạn ngay khi chỉ mục kết thúc quá trình xây dựng Chỉ mục TTL không đảm bảo rằng dữ liệu hết hạn sẽ bị xóa ngay khi hết hạn. Có thể có độ trễ giữa thời gian tài liệu hết hạn và thời gian MongoDB xóa tài liệu khỏi cơ sở dữ liệu Tác vụ nền xóa tài liệu hết hạn chạy 60 giây một lần. Do đó, các tài liệu có thể vẫn còn trong một bộ sưu tập trong khoảng thời gian từ khi tài liệu hết hạn đến khi chạy tác vụ nền Vì thời lượng của thao tác xóa phụ thuộc vào khối lượng công việc của phiên bản của bạn, nên dữ liệu đã hết hạn có thể tồn tại trong một khoảng thời gian sau khoảng thời gian 60 giây giữa các lần chạy tác vụ nền Bộ bản saoBật , chuỗi nền TTL chỉ xóa tài liệu trên. Tuy nhiên, chủ đề nền TTL không chạy trên thứ cấp. các thành viên sao chép các hoạt động xóa từ chính Hỗ trợ truy vấnChỉ mục TTL hỗ trợ các truy vấn giống như cách các chỉ mục không phải TTL thực hiện Phân bổ bản ghiBộ sưu tập có chỉ mục TTL đã được bật và bạn không thể sửa đổi cài đặt này cho bộ sưu tập. Do kích hoạt, MongoDB phải phân bổ nhiều không gian đĩa hơn so với kích thước dữ liệu. Cách tiếp cận này giúp giảm thiểu khả năng phân mảnh bộ nhớ do thao tác xóa thường xuyên gây ra và dẫn đến các kiểu sử dụng bộ nhớ dễ dự đoán hơn Những hạn chế
thông tin thêmVí dụ: xem Hết hạn dữ liệu từ Bộ sưu tập bằng cách đặt TTL . ← Thuộc tính chỉ mục Chỉ mục duy nhất → © MongoDB, Inc 2008-nay. MongoDB, Mongo và logo chiếc lá là các nhãn hiệu đã đăng ký của MongoDB, Inc Làm cách nào để hết hạn dữ liệu trong MongoDB?Tài liệu hết hạn vào một thời điểm đồng hồ cụ thể
. Nếu trường ngày được lập chỉ mục chứa một ngày trong quá khứ, MongoDB coi tài liệu đã hết hạn. set the indexed date field to a value corresponding to the time the document should expire. If the indexed date field contains a date in the past, MongoDB considers the document expired.
TTL hoạt động như thế nào trong MongoDB?Chỉ mục TTL là chỉ mục trường đơn đặc biệt mà MongoDB có thể sử dụng để tự động xóa tài liệu khỏi bộ sưu tập sau một khoảng thời gian nhất định hoặc tại một thời điểm đồng hồ cụ thể.
Làm cách nào để kiểm tra các chỉ mục TTL trong MongoDB?Các chỉ mục Thời gian tồn tại (TTL) được xác định cho mỗi bộ sưu tập dựa trên giá trị expireAfterSeconds được cung cấp. Theo mặc định, các bộ sưu tập không có chỉ mục TTL. . Phiên bản máy chủ MongoDB Phiên bản trình điều khiển/công cụ bạn đang sử dụng để hiển thị chi tiết TTL Thông tin TTL bạn yêu cầu Tính năng nào sau đây của bộ sưu tập hết hạn sau một khoảng thời gian nhất định?“TTL” có nghĩa là “ thời gian tồn tại ”, vì loại chỉ mục này có thể được sử dụng để tự động hết hạn tài liệu trong bộ sưu tập. |