Delen via


Richtlijnen voor tabelontwerp

Het ontwerpen van tabellen voor gebruik met de Azure Storage Table-service is heel anders dan ontwerpoverwegingen voor een relationele database. In dit artikel worden richtlijnen beschreven voor het ontwerpen van uw Table-serviceoplossing om efficiënt te kunnen lezen en schrijven.

Uw Table-serviceoplossing zo ontwerpen dat deze leesefficiënt is

  • Ontwerp voor het uitvoeren van query's in leesintensieve toepassingen. Wanneer u uw tabellen ontwerpt, moet u nadenken over de query's (met name de latentiegevoelige query's) die u gaat uitvoeren voordat u nadenkt over hoe u uw entiteiten gaat bijwerken. Dit resulteert doorgaans in een efficiënte en goed presterende oplossing.
  • Geef zowel PartitionKey als RowKey op in uw query's.Puntquery's zoals deze zijn de meest efficiënte tabelservicequery's.
  • Overweeg dubbele kopieën van entiteiten op te slaan. Tabelopslag is goedkoop, dus overweeg om dezelfde entiteit meerdere keren op te slaan (met verschillende sleutels) om efficiëntere query's mogelijk te maken.
  • Overweeg om uw gegevens te denormaliseren. Tabelopslag is goedkoop, dus overweeg om uw gegevens te denormaliseren. Sla bijvoorbeeld samenvattingsentiteiten op, zodat query's voor geaggregeerde gegevens slechts toegang hoeven te krijgen tot één entiteit.
  • Gebruik samengestelde sleutelwaarden. De enige sleutels die u hebt, zijn PartitionKey en RowKey. Gebruik bijvoorbeeld samengestelde sleutelwaarden om alternatieve sleuteltoegangspaden naar entiteiten in te schakelen.
  • Queryprojectie gebruiken. U kunt de hoeveelheid gegevens die u via het netwerk overbrengt verminderen met behulp van query's die alleen de velden selecteren die u nodig hebt.

Ontwerp uw Table-serviceoplossing om schrijfefficiënt te zijn

  • Maak geen dynamische partities. Kies sleutels waarmee u uw aanvragen op elk gewenst moment over meerdere partities kunt spreiden.
  • Vermijd pieken in het verkeer. Maak het verkeer gelijkmatig over een redelijke periode en voorkom pieken in het verkeer.
  • Maak niet per se een afzonderlijke tabel voor elk type entiteit. Wanneer u atomische transacties tussen entiteitstypen nodig hebt, kunt u deze meerdere entiteitstypen opslaan in dezelfde partitie in dezelfde tabel.
  • Houd rekening met de maximale doorvoer die u moet bereiken. U moet op de hoogte zijn van de schaalbaarheidsdoelen voor de Table-service en ervoor zorgen dat uw ontwerp er niet toe leidt dat u deze overschrijdt.

Terwijl u deze handleiding leest, ziet u voorbeelden die al deze principes in de praktijk brengen.

Volgende stappen