Conseils pour la conception de table
La conception de tables à utiliser avec le service de table de stockage Azure est très différente de la conception d’une base de données relationnelle. Cet article présente des conseils de conception pour votre solution de service de Table pour une lecture et une écriture efficaces.
Concevoir votre solution de service de Table pour une lecture efficace
- Conception pour l'interrogation dans les applications à lecture intensive. Lorsque vous concevez vos tables, pensez aux requêtes que vous allez exécuter (en particulier celles sensibles à la latence) avant de réfléchir à la méthode de mise à jour de vos entités. Cela permet généralement d’élaborer une solution efficace et performante.
- Spécifiez PartitionKey et RowKey dans vos requêtes. requêtes de pointage telles que celles-ci sont les requêtes de service de Table les plus efficaces.
- Envisagez de stocker des copies doubles des entités. Le stockage des tables est bon marché. Pensez à stocker la même entité plusieurs fois (avec des clés différentes) pour permettre des requêtes plus efficaces.
- Envisagez de dénormaliser vos données. Le stockage des tables est bon marché, alors pensez à dénormaliser vos données. Par exemple, stockez des entités de résumé pour que les requêtes d’agrégation de données aient seulement besoin d’accéder à une entité unique.
- Utilisez des valeurs de clés composées. Les seules clés dont vous disposez sont PartitionKey et RowKey. Par exemple, utilisez des valeurs de clé composées pour activer les chemins d’accès de clé de substitution pour les entités.
- Utilisez la projection de requêtes. Vous pouvez réduire la quantité de données que vous transférez sur le réseau en utilisant des requêtes qui ne sélectionnent que les champs dont vous avez besoin.
Concevoir votre solution de service de Table pour une écriture efficace
- Ne créez pas de partitions chaudes. Choisissez des clés qui vous permettent de répartir vos demandes sur plusieurs partitions à tout moment.
- Évitez les pics de trafic. Lissez le trafic sur une période de temps raisonnable et évitez les pics de trafic.
- Ne créez pas nécessairement une table distincte pour chaque type d'entité. Lorsque vous avez besoin de transactions atomiques entre les types d'entités, vous pouvez stocker ces multiples types d'entités dans la même partition de la même table.
- Considérez le débit maximal que vous devez atteindre. Vous devez connaître les objectifs d'évolutivité du service de tableau et vous assurer que votre conception ne vous amènera pas à les dépasser.
En lisant ce guide, vous rencontrerez des exemples mettant ces principes en pratique.