Мы переносим базу данных из MySQL в MongoDB по соображениям производительности и рассмотрим, что использовать для идентификаторов документов MongoDB. Мы обсуждаем использование ObjectID, которое является дефолтом MongoDB, или вместо этого используем UUID (это то, что мы использовали до сих пор в MySQL). До сих пор аргументы, которые мы должны поддерживать для любого из этих параметров, следующие:
ObjectIds: ObjectID - это дефолт MongoDB, и я предполагаю (хотя я не уверен), что это по какой-то причине, а это означает, что я ожидаю, что MongoDB сможет обрабатывать их более эффективно, чем UUID, или есть еще одна причина для их предпочтения. Я также нашел qaru.site/info/263074/..., в котором упоминается, что использование ObjectID повышает эффективность индексирования, было бы неплохо, однако, иметь некоторые показатели того, насколько это "более эффективно".
UUID, Наш основной аргумент в пользу использования UUID (и это довольно важный) заключается в том, что они поддерживаются, так или иначе, практически любой базой данных. Это означает, что если какой-то путь вниз мы решаем переключиться с MongoDB на что-то другое по любой причине, и у нас уже есть API, который извлекает документы из БД на основе их идентификаторов, для клиентов этого API ничего не меняется, поскольку идентификаторы могут продолжать быть точно таким же. Если бы мы использовали ObjectIDs, я не совсем уверен, как мы будем переносить их в другую базу данных.
Есть ли у кого-нибудь представление о том, может ли один из этих вариантов лучше других и почему? Вы когда-нибудь использовали UUID в MongoDB вместо ObjectID, и если да, то в чем были преимущества/проблемы, с которыми вы столкнулись?