Riktlinjer för tabelldesign
Att utforma tabeller för användning med Azure Storage-tabelltjänsten skiljer sig mycket från designöverväganden för en relationsdatabas. I den här artikeln beskrivs riktlinjer för att utforma en tabelltjänstlösning så att den blir läseffektiv och skriveffektiv.
Utforma tabelltjänstlösningen så att den är läseffektiv
- Designa för frågor i läsintensiva program. När du utformar tabellerna bör du tänka på de frågor (särskilt svarstidskänsliga) som du ska köra innan du tänker på hur du ska uppdatera dina entiteter. Detta resulterar vanligtvis i en effektiv och högpresterande lösning.
- Ange både PartitionKey och RowKey i dina frågor. Punktfrågor som dessa är de mest effektiva tabelltjänstfrågorna.
- Överväg att lagra duplicerade kopior av entiteter. Tabelllagring är billigt, så överväg att lagra samma entitet flera gånger (med olika nycklar) för att möjliggöra effektivare frågor.
- Överväg att avnormalisera dina data. Tabelllagring är billigt, så överväg att avnormalisera dina data. Lagra till exempel sammanfattningsentiteter så att frågor om aggregerade data bara behöver komma åt en enda entitet.
- Använd sammansatta nyckelvärden. De enda nycklar du har är PartitionKey och RowKey. Använd till exempel sammansatta nyckelvärden för att aktivera alternativa nyckelade åtkomstsökvägar till entiteter.
- Använd frågeprojektion. Du kan minska mängden data som du överför via nätverket med hjälp av frågor som bara väljer de fält du behöver.
Utforma tabelltjänstlösningen så att den är skriveffektiv
- Skapa inte frekventa partitioner. Välj nycklar som gör att du kan sprida dina begäranden över flera partitioner när som helst.
- Undvik toppar i trafiken. Jämna ut trafiken under en rimlig tidsperiod och undvik toppar i trafiken.
- Skapa inte nödvändigtvis en separat tabell för varje typ av entitet. När du behöver atomiska transaktioner mellan entitetstyper kan du lagra dessa flera entitetstyper i samma partition i samma tabell.
- Överväg det maximala dataflöde som du måste uppnå. Du måste vara medveten om skalbarhetsmålen för tabelltjänsten och se till att designen inte gör att du överskrider dem.
När du läser den här guiden ser du exempel som omsätter alla dessa principer i praktiken.