Quando incorporare o fare riferimento ai dati

Completato

Nell'unità precedente i dati relativi all'indirizzo e alla password del cliente sono stati incorporati in un nuovo documento del cliente. Questa azione riduce il numero di richieste, migliorando le prestazioni e riducendo i costi. Tuttavia, non è sempre possibile incorporare i dati. Esistono regole riguardo a quando è consigliabile incorporare i dati in un documento anziché fare riferimento agli stessi in una riga diversa.

Quando è necessario incorporare i dati?

Incorporare dati in un documento quando ai dati si applicano i criteri seguenti:

  • Lettura o aggiornamento insieme: i dati letti o aggiornati insieme vengono quasi sempre modellati come un singolo documento. Ciò riduce il numero di richieste, che è l’obiettivo in termini di efficienza. In questo scenario tutte le entità cliente vengono lette o scritte insieme.
  • Relazione 1:1: ad esempio Customer e CustomerPassword hanno una relazione 1:1.
  • 1:Pochi relazioni: in un database NoSQL è necessario distinguere le relazioni 1:Many come limitate o illimitate. Cliente e CustomerAddress hanno una relazione limitata 1:Molti perché i clienti in un'applicazione di e-commerce in genere hanno solo una manciata di indirizzi a cui spedire. Se la relazione ha dei vincoli, si tratta di una relazione uno-a-pochi.

Quando è necessario fare riferimento ai dati?

Fare riferimento ai dati come documenti separati quando ai dati si applicano i criteri seguenti:

  • Dati letti o aggiornati in modo indipendente: vale soprattutto per la combinazione di entità che generano documenti di grandi dimensioni. Gli aggiornamenti in Azure Cosmos DB richiedono la sostituzione dell'intero elemento. Se un documento ha alcune proprietà che vengono aggiornate di frequente insieme a un numero elevato di proprietà per lo più statiche, è molto più efficiente suddividere il documento in due. Un documento contiene quindi il set più piccolo di proprietà che vengono aggiornate di frequente. L'altro documento contiene i valori statici che non cambiano.

  • Relazione uno-a-molti: vale soprattutto se la relazione è senza vincoli. Se si dispone di un documento che aumenta di dimensioni un numero sconosciuto o illimitato di volte, il costo e la latenza per tali aggiornamenti continuerà ad aumentare. Ciò è dovuto all'aumento delle dimensioni dell'aggiornamento che costa più unità di richiesta (UR) al secondo e ai payload che passano sulla rete, anch'essa inefficiente.

  • Molte:Molte relazioni: verrà illustrato un esempio di questa relazione in un'unità successiva con i tag del prodotto.

    La separazione di queste proprietà riduce il consumo di velocità effettiva e ottimizza l'efficienza. Riduce anche la latenza migliorando le prestazioni.