Chúng tôi đang di chuyển cơ sở dữ liệu từ MySQL sang MongoDB vì lý do hiệu suất và xem xét những gì sẽ sử dụng cho ID của tài liệu MongoDB. Chúng tôi đang tranh luận giữa việc sử dụng ObjectID, là mặc định của MongoDB hay sử dụng UUID thay thế (đó là những gì chúng tôi đã sử dụng cho đến bây giờ trong MySQL). Cho đến nay, các đối số mà chúng tôi có để hỗ trợ bất kỳ tùy chọn nào trong số này là:
ObjectID: ObjectID là mặc định của MongoDB và tôi cho rằng (mặc dù tôi không chắc) rằng điều này là có lý do, nghĩa là tôi mong đợi MongoDB có thể xử lý chúng hiệu quả hơn UUID hoặc có một lý do khác để thích chúng hơn. Tôi cũng tìm thấy câu trả lời stackoverflow này đề cập rằng việc sử dụng ObjectID giúp lập chỉ mục hiệu quả hơn, tuy nhiên, sẽ rất tuyệt nếu có một số số liệu về mức độ "hiệu quả hơn" này.
UUID: Lập luận cơ bản của chúng tôi ủng hộ việc sử dụng UUID (và nó khá quan trọng) là chúng được hỗ trợ, bằng cách này hay cách khác, bởi hầu như bất kỳ cơ sở dữ liệu nào. Điều này có nghĩa là nếu một cách nào đó, chúng tôi quyết định chuyển từ MongoDB sang thứ khác vì bất kỳ lý do gì và chúng tôi đã có một API truy xuất tài liệu từ DB dựa trên ID của chúng, không có gì thay đổi đối với khách hàng của API này vì các ID có thể tiếp tục hoàn toàn giống nhau. Nếu chúng ta sử dụng ObjectID, tôi không thực sự chắc chắn về việc chuyển chúng sang DB khác như thế nào.
Có ai có hiểu biết về việc liệu một trong những tùy chọn này có thể tốt hơn lựa chọn kia hay không và tại sao? Bạn đã bao giờ sử dụng UUID trong MongoDB thay vì ObjectID chưa và nếu có thì những ưu điểm / vấn đề bạn gặp phải là gì?