Delen via


Ontwerp voor gegevenswijziging

Dit artikel is gericht op de ontwerpoverwegingen voor het optimaliseren van invoegingen, updates en verwijderingen. In sommige gevallen moet u de afweging evalueren tussen ontwerpen die optimaliseren voor het uitvoeren van query's op ontwerpen die optimaliseren voor gegevenswijziging, net zoals in ontwerpen voor relationele databases (hoewel de technieken voor het beheren van de ontwerpafwegingen anders zijn in een relationele database). In de sectie Tabelontwerppatronen worden enkele gedetailleerde ontwerppatronen voor de Table-service beschreven en worden enkele van deze afwegingen uitgelicht. In de praktijk zult u merken dat veel ontwerpen die zijn geoptimaliseerd voor het uitvoeren van query's op entiteiten, ook goed werken voor het wijzigen van entiteiten.

De prestaties van invoegen, bijwerken en verwijderen optimaliseren

Als u een entiteit wilt bijwerken of verwijderen, moet u deze kunnen identificeren met behulp van de waarden PartitionKey en RowKey . In dit opzicht moet uw keuze van PartitionKey en RowKey voor het wijzigen van entiteiten dezelfde criteria volgen als uw keuze voor het ondersteunen van puntquery's, omdat u entiteiten zo efficiënt mogelijk wilt identificeren. U wilt geen inefficiënte partitie- of tabelscan gebruiken om een entiteit te vinden om de waarden PartitionKey en RowKey te detecteren die u nodig hebt om deze bij te werken of te verwijderen.

De volgende patronen in de sectie Tabelontwerppatronen hebben betrekking op het optimaliseren van de prestaties of uw invoeg-, update- en verwijderbewerkingen:

  • Patroon voor verwijderen van hoog volume : hiermee kunt u het verwijderen van een groot aantal entiteiten mogelijk maken door alle entiteiten voor gelijktijdige verwijdering op te slaan in hun eigen afzonderlijke tabel; u de entiteiten verwijdert door de tabel te verwijderen.
  • Patroon voor gegevensreeksen : sla volledige gegevensreeksen op in één entiteit om het aantal aanvragen dat u doet te minimaliseren.
  • Patroon voor brede entiteiten: gebruik meerdere fysieke entiteiten om logische entiteiten met meer dan 252 eigenschappen op te slaan.
  • Patroon voor grote entiteiten : gebruik blobopslag om grote eigenschapswaarden op te slaan.

Zorg voor consistentie in uw opgeslagen entiteiten

De andere belangrijke factor die van invloed is op uw keuze van sleutels voor het optimaliseren van gegevenswijzigingen, is hoe u consistentie kunt garanderen met behulp van atomische transacties. U kunt een EGT alleen gebruiken om te werken met entiteiten die zijn opgeslagen in dezelfde partitie.

De volgende patronen in het artikel Tabelontwerppatronen hebben betrekking op het beheren van consistentie:

  • Secundair indexpatroon tussen partities : sla meerdere kopieën van elke entiteit op met behulp van verschillende RowKey-waarden (in dezelfde partitie) om snelle en efficiënte zoekacties en alternatieve sorteervolgordes mogelijk te maken met behulp van verschillende RowKey-waarden .
  • Secundair indexpatroon tussen partities : sla meerdere kopieën van elke entiteit op met behulp van verschillende RowKey-waarden in afzonderlijke partities of in afzonderlijke tabellen om snelle en efficiënte zoekacties en alternatieve sorteervolgordes mogelijk te maken met behulp van verschillende RowKey-waarden .
  • Patroon voor uiteindelijk consistente transacties : schakel uiteindelijk consistent gedrag binnen partitiegrenzen of opslagsysteemgrenzen in met behulp van Azure-wachtrijen.
  • Patroon voor indexentiteiten : onderhoud indexentiteiten om efficiënte zoekopdrachten mogelijk te maken die lijsten met entiteiten retourneren.
  • Denormalisatiepatroon : combineer gerelateerde gegevens in één entiteit, zodat u alle gegevens die u nodig hebt, kunt ophalen met één puntquery.
  • Patroon voor gegevensreeksen : sla volledige gegevensreeksen op in één entiteit om het aantal aanvragen dat u doet te minimaliseren.

Zie de sectie Transacties voor entiteitsgroepen voor meer informatie over transacties in entiteitsgroepen.

Zorg ervoor dat uw ontwerp voor efficiënte wijzigingen efficiënte query's mogelijk maakt

In veel gevallen resulteert een ontwerp voor efficiënte query's in efficiënte wijzigingen, maar u moet altijd evalueren of dit het geval is voor uw specifieke scenario. Sommige van de patronen in het artikel Tabelontwerppatronen evalueren expliciet de afwegingen tussen het uitvoeren van query's en het wijzigen van entiteiten. U moet altijd rekening houden met het aantal bewerkingen van elk type bewerking.

De volgende patronen in het artikel Tabelontwerppatronen hebben betrekking op de afwegingen tussen het ontwerpen voor efficiënte query's en het ontwerpen voor efficiënte gegevenswijziging:

  • Samengesteld sleutelpatroon : gebruik samengestelde RowKey-waarden om een client in staat te stellen gerelateerde gegevens op te zoeken met een query met één punt.
  • Logboekstaartpatroon : haal de n entiteiten op die het laatst aan een partitie zijn toegevoegd met behulp van een RowKey-waarde die in omgekeerde datum- en tijdvolgorde wordt gesorteerd.