Oletko koskaan miettinyt, miksi päivitykset ja päivitykset ovat niin välttämättömiä mihin tahansa järjestelmään? No, se ei ole mikään salaisuus: Ne varmistavat, että järjestelmät pysyvät merkityksellisinä ja tehokkaina. MongoDB: n kanssa se ei ole erilainen. Aina kun ajattelemme päivittämistä, etsimme tehokkuutta, turvallisuutta, suorituskykyä ja muita etuja, jotka tulevat päivitetyillä järjestelmillä. Mitä uutta versiossa 8.0 on? Suosituin asiakirja-tietokanta on nyt nopeampi kuin koskaan. on erinomainen valinta niille, jotka etsivät suorituskykyä, huippuluokan teknologiaa ja intuitiivista kokemusta. Se tarjoaa huomattavan parannuksen läpäisevyydessä ja viiveessä verrattuna aiempiin versioihin. Sisäinen testaus versioon 7.0 osoittaa 32% nopeampia lukemisia, 59% nopeampia päivityksiä ja 200% nopeampia ajanjaksoja koskevia kyselyitä. Tämän uusimman version julkaisu keskittyy useisiin keskeisiin pilareihin: MongoDB 8.0 Käyttöjärjestelmä : MongoDB 8.0 tarjoaa merkittäviä suorituskyvyn parannuksia, kuten nopeampia lukemia, kirjoittamia ja suuria toimintoja. ja Joten, jos sovelluksesi kokee suuria kuormia, päivittäminen 8.0: een voi vähentää reagointiaikoja ja parantaa läpäisevyyttä huomattavasti, mikä varmistaa, että järjestelmä pysyy skaalautuvana jopa raskaan käytön aikana. Performance improvement insertMany bulkInsert MongoDB 8.0 -ohjelmistossa esittelee mahdollisuuden suorittaa alueiden kyselyitä salattuihin kenttiin käyttäen $lt, $lte, $gt ja $gte-operaattoreita. Security Suosittu salaus MongoDB 8.0:n avulla horisontaalinen skaalaaminen on nyt nopeampaa ja edullisempaa.Tämä menetelmä mahdollistaa sovellusten siirtymisen perinteisten tietokantojen rajojen yli levittämällä tietoja useisiin palvelimiin, joita kutsutaan osakkeiksi, ilman, että on tarpeen valmistaa suuria resursseja etukäteen.MongoDB 8.0:n uudet sharding-ominaisuudet tekevät tietojen jakautumisesta jopa 50 kertaa nopeampaa ja vähentävät kustannuksia jopa 50 prosenttia. Resilience, scalability, and high availability Yleisiä muutoksia Suosittu salaus Uuden version avulla Queryable Encryption mahdollistaa etsimisen alueella käyttämällä operaattoreita, kuten ja ja ja , esimerkiksi suodattaa tietoja tietyin väliajoin, kuten päivämäärät tai numeeriset arvot, säilyttäen samalla tiedot salattuina. $lt $lte gt $gte Express query vaiheet Express esiteltiin uudeksi suoritusvaiheeksi, joka optimoi kyselyn polun yksinkertaisiin käyttötapauksiin.Jos käytät yksinkertaista kyselyä, joka käyttää yhtä _id-indeksiä, esimerkiksi... db.customer.find({_id: ObjectId('670ec6b005b98857588f5b6a')}).explain() ...näet, että tämä uusi EXPRESS_IXSCAN vaihe on sisällytetty. EXPRESS-vaiheet voivat olla yksi seuraavista: EXPRESS_CLUSTERED_IXSCAN Käyttöohjeet Ilmoittautuminen - Delete Ilmoittautuminen Express_IXSCAN Ilmoittautuminen - päivitys Sen sijaan, että suoritat klassisen suunnitelman vaiheen, kysely käyttää nyt tätä uutta vaihetta. Tämä ohittaa säännöllisen kyselyn suunnittelun ja suorittamisen, jolloin suorituskyky paranee jopa 17%. Kysymysmuoto ja kyselyasetukset MongoDB:n kyselylomake edustaa joukkoa ominaisuuksia, jotka ryhmittävät samankaltaiset kyselyt yhteen, mukaan lukien suodattimet, lajittelu, projektiot, aggregaatiovaiheet ja nimipaikka. Tämä mahdollistaa MongoDB:n suorituskyvyn parantamisen käyttämällä uudelleen kyselylomakkeita rakenteellisesti samankaltaisiin kyselyihin, mikä johtaa tehokkaampaan suorittamiseen. Yksi tällainen käytös on Kun sitä käytetään, MongoDB hylkää automaattisesti kaikki kyselyt, jotka vastaavat tätä muotoa, riippumatta sen erityisarvoista. reject: true Kuvittele, että hallitset tietokantaa, joka vastaanottaa pyyntöjä kolmannen osapuolen sovelluksista. Yksi sovellus alkaa lähettää raskaita kyselyitä, jotka suorittavat kokoelman skannauksen (COLLSCAN), mikä hidastaa merkittävästi järjestelmää - esimerkiksi kysely, kuten: Use case: db.pizzaOrders.find({price: 10}) // Explain Plan "winningPlan": { "stage": "COLLSCAN", "filter": { "price": { "$eq": 20 } }, }, Voit määrittää kyselynSettings hylkäämään kyselyt, jotka vastaavat tätä rakennetta (arvoista riippumatta): db.adminCommand( { setQuerySettings: { find: "pizzaOrders", filter: { price: 20 }, $db: "my_database" }, settings: { comment: "Will be rejected", reject: true } } ) Tämä komento asettaa kyselylomakkeen, jossa jokainen kysely etsii Niissä Valitus hylätään riippumatta siitä, mitä kyselyssä annettu arvo. (Keskittyminen on kokonaan kyselyn rakenteeseen.) Siksi, jos suoritamme kyselyn, joka vastaa tätä rakennetta... price pizzaOrders price db.pizzaOrders.find({price: 10}) MongoDB hylkää kyselyn automaattisesti: Jos haluat tarkastella kaikkia kyselyn asetuksia, voit käyttää $querySettings -vaihetta yhdistelmäputkessa: db.aggregate( [ { $querySettings: {} } ] ) Tulos : [ { "queryShapeHash": "4DD2DED8A25C787DFA41325883052FABB97DDEE567B2636A3B188DDF0CCFE6F0", "settings": { "reject": true, "comment": "Will be rejected" }, "representativeQuery": { "find": "pizzaOrders", "filter": { "price": 20 }, "$db": "my_database" } } ] Jos kuitenkin haluat tarkistaa kyselylomakkeet eli eri tyyppiset kyselyt, jotka on suoritettu, sinulla on kaksi vaihtoehtoa: Käytä $QueryStats Tämä kokoamisvaihe tarjoaa tilastoja kyselyjen suorittamisesta . since the last server restart use('admin'); db.aggregate( [ { $queryStats: {} } ] ) Tämä auttaa analysoimaan kyselymalleja ja optimoimaan suorituskykyä. 2. Tarkista MongoDB-päiväkirjat Hitaat kyselyt kirjautuvat kyselynsä ShapeHashes kanssa MongoDB-päiväkirjoihin. Tämä on hyödyllistä tunnistaa tehottomia kyselyitä, jotka tarvitsevat optimointia. Poistaaksemme, voimme käyttää kyselyn muotoa hash: db.adminCommand( { removeQuerySettings: '4DD2DED8A25C787DFA41325883052FABB97DDEE567B2636A3B188DDF0CCFE6F0' } ) Tämä lähestymistapa on arvokas, koska se varmistaa, että tietokanta ei vaikuta kolmansien osapuolten kyselyihin, jotka voivat aiheuttaa suurta resurssien kulutusta, kaikki . without the need to make changes to the application Yhteensopivuus ja vähennykset Haluavat käyttäytymistä Ennen versiota 8.0, jos etsit arvoja, jotka , kentät, joissa on arvo myös palautettaisiin, mutta tässä uudessa versiossa tallennetut tiedot ei enää palauteta kyselyissä, joissa Yhdenvertaisuus – esimerkiksi null undefined undefined null // People collection [ { _id: 1, name: null }, { _id: 2, name: undefined } ] Kun otetaan huomioon tämä kokoelma, jos suoritat seuraavan kyselyn... db.people.find({name: null}) ... ja tulos on: [ { _id: 1, name: null } ] Tiedot kanssa ei enää palauteta.Jos hakemuksesi sisältää tietoja , voit kirjoittaa uudelleen tai päivittää määrittelemättömät tiedot ja kyselyt tämän käyttäytymisen muutoksen huomioon ottamiseksi. undefined undefined • The tyyppi on poistettu käytöstä ja joissakin tapauksissa, jos yrität lisätä Siitä tulee muunnettua . Note undefined undefined null Indeksisuodattimet Harkitse käyttämistä , kuten on käsitelty tämän artikkelin kyselyn muoto-osiossa, koska indeksisuodattimet ovat tässä versiossa vähäisiä. tarjoaa huomattavasti enemmän toiminnallisuutta, mikä tekee siitä suosituimman valinnan.Index-suodattimet ovat nyt pois käytöstä, on suositeltavaa vaihtaa hyödyntää edistyksellisiä ominaisuuksiaan. setQuerySettings setQuerySettings setQuerySettings Suunnittelun ja strategian parantaminen Nyt kun olet nähnyt uudet ominaisuudet uusimmassa versiossa ja päättänyt päivittää uusimpaan MongoDB-versioon, on muutamia asioita, jotka sinun on oltava tietoinen. Pidä mielessä, että jokaisella skenaariossa on omat erityispiirteensä, ja ymmärtää, miten sovelluksesi käyttää MongoDB-ominaisuuksia on ratkaisevan tärkeää tehokkaan päivityksen kannalta. Ennakkoarvioinnin päivitys Upgrade version path Kaikki Jäsenillä on oltava versio 7.0 ennen versioon 8.0 päivittämistä. Replikaatti Set On tärkeää huomata, että ei ole mahdollista päivittää suoraan versio 5.0-sarja 8.0, esimerkiksi, tai 6.0-sarja 8.0. Voit tehdä tämän, sinun täytyy päivittää peräkkäin, versio per versio, kunnes saavutat versio 7.0. Review release notes Mikään muu paikka ei sisällä arvokkaampaa tietoa kuin Varmista aina, että kiinnität huomiota jokaiseen julkaistuun muistiinpanoon, erityisesti mihin tahansa merkittäviin muutoksiin, uusiin ominaisuuksiin ja heikentyneisiin toimintoihin. Julkaise muistiinpanoja versiosta Julkaise muistiinpanoja versiosta Check the driver compatibility Ennen mitään Mongodb liittyvää päivitystä on tärkeää tarkistaa kuljettajan dokumentaatiossa olevat yhteensopivuustaulukot. , sinun pitäisi varmistaa, että MongoDB-versio on yhteensopiva MongoDB-ohjaimen kanssa, jota aiot käyttää. avoid breaking your application Voimme nähdä, että MongoDB 8.0:n kaikkien ominaisuuksien käyttämiseksi sinun on käytettävä ohjainta versio 5.2 - 5.3. Sovellusohjaimet on ehkä päivitettävä uusien palvelimen ominaisuuksien hyödyntämiseksi. Cluster health check Toinen tärkeä asia ennen päivityksen aloittamista on tarkistaa kaikkien replikaatiosarjan jäsenten terveys. **Varmista, että kaikki solmut toimivat optimaalisesti.** Voit löytää nämä tiedot siirtymällä ”Database Cluster” -valikkoon ja klikkaamalla klusteriasi: Tällä näytöllä huomaat, että jokaisella solmulla on vihreä piste nimensä vieressä, mikä osoittaa, että terveys on kunnossa. Staging cluster: your testing hub Turvallisen päivityksen varmistamiseksi ja riskien lieventämiseksi on välttämätöntä työskennellä Toimintaympäristö toimii turvallisena vyöhykkeenä uusien versioiden, ominaisuuksien ja muutosten testaamiseksi vaikuttamatta loppukäyttäjiin. Ympäristön testaus Luo näyttökerroin Tässä vaiheessa luodaan erityinen klusterin testausta varten. Noudata tavanomaista prosessia uuden klusterin luomiseksi, tuotantoympäristön tarkka simulointi. varmistaa, että se vastaa nykyistä tuotantoversiota 2. Päivitä vaiheita tuotantotietojen avulla Palauta viimeaikainen varmuuskopio tuotantoklusterista varmistaaksesi, että näyttöympäristö heijastaa tuotannon nykyistä tilaa. Voit tehdä tämän Atlas-käyttöliittymän kautta valitsemalla varmuuskopion, valitsemalla palautusvaihtoehdon ja kohdistamalla näyttökerroksen. 3. Päivitä Staging Cluster 8.0: een Päivitä klusteri MongoDB 8.0:een testataksesi uutta versiota ja sen ominaisuuksia. Voit tehdä tämän klikkaamalla klusteriä ja valitsemalla ”Edit Configuration” ja ”Additional Settings”: 4. Testaa hakemuksesi Suorita testejä varmistaaksesi, että kaikki toimii odotetulla tavalla, mukaan lukien sekä tietokannan että sovellusten testit. Tuotantoklusterin päivittäminen Kun olet testannut tuotantoympäristössä, varmista, että ominaisuuksien yhteensopivuusversio (FCV) on asetettu asianmukaisesti ennen tuotantoklusterin päivittämistä. tarjoaa ylimääräisen suojauskerroksen päivitysprosessin aikana hallitsemalla, mitkä uuden MongoDB-version ominaisuudet ovat käytettävissä klusterissa.Tämä mahdollistaa vaiheittaisen siirtymisen uusimpaan versioon varmistaen, että kaikki toimii oikein ennen uusien ominaisuuksien täysimääräistä käyttöönottoa tuotannossa. FCV Vaikka se ei ole pakollista, FCV:n määrittäminen antaa sinulle joustavuutta. Tarvittaessa voit palata aiempaan versioon säätämällä FCV-asetusta. Tämä varmistaa, että voit hallita päivitysprosessia minimaalisella riskillä ja hallita enemmän mahdollisia ongelmia. Kun olet määrittänyt FCV:n (halutessasi), voit jatkaa tuotantoklusterin päivittämistä.Tätä varten noudata samoja vaiheita kuin edellisessä osassa, mutta tällä kertaa sovelletaan niitä tuotantoklusteriin. Valvonta Seuraava päivitys on yhtä tärkeä kuin kaikki aiemmat vaiheet. Toiminnan seuranta on ratkaisevan tärkeää prosessin onnistumisen varmistamiseksi. Joitakin tärkeitä kohtia tarkistaa ovat: : Seuraa solmujen terveyttä varmistaakseen, että ne toimivat oikein. Node health Pidä silmällä sitä, että Lukeminen ja kirjoittaminen varmistavat, että suorituskykyä ei ole. Latency of operations latentti • Tarkkaile varmistaa, että ne toimivat tehokkaasti päivityksen jälkeen. Query performance Pyyntöjen suorituskyky Tarkista, että indeksit toimivat oikein ja optimoi ne tarvittaessa. Indexes Viimeisenä mutta ei vähäisimpänä, tarkista klusterin jokaisen solmun mittarit. Ne antavat arvokasta tietoa järjestelmän yleisestä terveydentilasta. Löydät ne klusterin ”Metrit” -välilehdestä: palautetta Tarkista MongoDB-klusterin tuen elinkaari ja pysy ajan tasalla versioiden julkaisusta, jotta voit valmistautua saumattomaan ja tehokkaaseen päivitykseen. Ymmärrä, miten sovelluksesi vuorovaikutuksessa MongoDB-ominaisuuksien kanssa. Tunnista kaikki tarvittavat muutokset hakemukseen. Suunnittele päivityksesi etukäteen. Älä unohda kuljettajan päivityksiä. Suorita perusteellinen testaus ennen päivityksen aloittamista. Kuinka monimutkainen päivityksesi on? Nyt kun olemme luetelleet onnistuneen päivityksen tärkeimmät vaiheet – mukaan lukien ennalta päivityksen arviointi, klusterin testaus ja ohjainten yhteensopivuuden tarkistaminen – arvioimme, kuinka monimutkainen päivitys voi olla. Suorat päivitykset Jos käytössäsi on jo MongoDB 7.0, päivitetyt ohjaimet ja käytössäsi on täysin tuettu Atlas-taso, päivitys on yleensä nopeampaa ja yksinkertaisempaa. Monimutkaisempia päivityksiä Jos käytät vanhempaa versiota (esim. 5.0 tai 6.0), sinun on päivitettävä asteittain (esim. 5.0 → 6.0 → 7.0 → 8.0), kuten edellä mainittiin. Koska päivitysaika vaihtelee merkittävästi näiden tekijöiden perusteella, käytä viitekehyksenä vaiheiden klustereita (keskitelty edellisessä osassa) Vaikka tämä lähestymistapa ei anna tarkkaa aikaa, se voi antaa sinulle arvioidun käsityksen päivityksen kokonaiskestosta, jolloin voit suunnitella sen mukaisesti. can help estimate the duration. Monimutkaisuudesta riippumatta parhaiden käytäntöjen noudattaminen – kuten näyttämöympäristön testaaminen ja klusterin terveyden seuranta – varmistaa sujuvan ja luotettavan siirtymän. Johtopäätös Tässä artikkelissa korostettiin uusimman version keskeisiä muutoksia, mukaan lukien yhteensopivuusnäkökohdat, vanhentuneet ominaisuudet ja parhaat käytännöt sujuvan päivityksen varmistamiseksi. Tämä artikkeli on kirjoittanut Ricardo Mello, Senior Developer Advocate-São Paulo, Brasilia. Ricardo keskittyy Java ja Kotlin, sertifioitu MongoDB Associate Developer ja Java SE 8 Programmer. 13 vuoden kokemus Software Engineer, hän hyödyntää asiantuntemustaan voidakseen antaa kehittäjille ja ajaa innovaatioita MongoDB. Hän on intohimoinen tietämyksen jakamista, uskoen, että se on yksi parhaista tavoista edistää yhteisöä. Löydä hänet LinkedIn. Tämä artikkeli on kirjoittanut Ricardo Mello, Senior Developer Advocate-São Paulo, Brasilia. Ricardo keskittyy Java ja Kotlin, sertifioitu MongoDB Associate Developer ja Java SE 8 Programmer. 13 vuoden kokemus Software Engineer, hän hyödyntää asiantuntemustaan voidakseen antaa kehittäjille ja ajaa innovaatioita MongoDB. Hän on intohimoinen tietämyksen jakamista, uskoen, että se on yksi parhaista tavoista edistää yhteisöä. Löydä hänet LinkedIn. Tekijä Ricardo Mello Tekijä Ricardo Mello Linkedin mukaan