MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

É ruim alterar o tipo _id no MongoDB para inteiro?


Não, não é nada ruim e, de fato, o ObjectId embutido é bastante considerável dentro do índice, portanto, se você acredita que tem algo melhor, é mais que bem-vindo a alterar o valor padrão do _id campo para o que quer que seja.

Mas, e este é um grande mas , há algumas considerações ao decidir se afastar do ObjectId formulado padrão , especialmente ao usar os _ids de incremento automático, conforme mostrado aqui:https://docs.mongodb.com/v3.0/tutorial/create-an-auto-incrementing-field

Multi threading não é um problema tão grande porque findAndModify e os bloqueios atômicos podem realmente cuidar disso, mas então você simplesmente encontra seu primeiro problema. findAndModify não é a função mais rápida nem a mais leve e houve quedas significativas de desempenho observadas ao usá-lo regularmente.

Você também deve considerar a sobrecarga de fazer isso sozinho, mesmo sem findAndModify . Para cada inserção, você precisará de uma consulta extra. Imagine ter um id exclusivo que você precisa consultar a exclusividade de cada vez que deseja inserir. Eventualmente, sua taxa de inserção cairá para um rastreamento e seu tempo de bloqueio aumentará.

Claro que o ObjectId é realmente bom em ser único sem ter que verificar ou formular sua própria singularidade tocando no banco de dados antes da inserção, portanto, não tem essa sobrecarga.

Se você ainda sentir que um _id inteiro se encaixa no seu cenário, vá em frente, mas tenha em mente a sobrecarga descrita acima.