sql >> Databasteknik >  >> NoSQL >> MongoDB

Är det dåligt att ändra _id-typ i MongoDB till heltal?

Nej, det är inte alls dåligt och faktiskt det inbyggda ObjectId är ganska stor i indexet så om du tror att du har något bättre är du mer än välkommen att ändra standardvärdet för _id fältet till vad som helst.

Men, och det här är ett stort men , det finns några överväganden när man bestämmer sig för att gå bort från det standardformulerade ObjectId , speciellt när du använder autoincrementing _ids som visas här:https://docs.mongodb.com/v3.0/tutorial/create-an-auto-incrementing-field

Multi threading är inte ett så stort problem eftersom findAndModify och atomlåsen kan faktiskt ta hand om det, men då stöter du bara på ditt första problem. findAndModify är inte den snabbaste funktionen eller den lättaste och det har märkts betydande prestandasänkningar när du använder den regelbundet.

Du måste också överväga omkostnader för att göra detta själv ändå, även utan findAndModify . För varje insert behöver du en extra fråga. Föreställ dig att du har ett unikt id som du måste fråga om unikheten för varje gång du vill infoga. Så småningom kommer din insättningshastighet att sjunka till en genomsökning och din låstid kommer att byggas upp.

Naturligtvis ObjectId är riktigt bra på att vara unik utan att behöva kontrollera eller formulera sin egen unikhet genom att vidröra databasen innan den infogas, därför har den inte denna overhead.

Om du fortfarande känner att ett heltals _id passar ditt scenario, gå för det, men kom ihåg de overhead som beskrivs ovan.



  1. Spring Boot Integration Testing med Embedded MongoDB

  2. Hur man skapar index i MongoDB via .NET

  3. Så här fixar du VARNINGAR när du kör Redis:alpine Docker-bilden

  4. Finns det något sätt att flushall på ett kluster så att alla nycklar från master och slavar raderas från db