Scalability and performance targets for Table storage
This reference details scalability and performance targets for Azure Storage. The scalability and performance targets listed here are high-end targets, but are achievable. In all cases, the request rate and bandwidth achieved by your storage account depends upon the size of objects stored, the access patterns utilized, and the type of workload your application performs.
Make sure to test your service to determine whether its performance meets your requirements. If possible, avoid sudden spikes in the rate of traffic and ensure that traffic is well-distributed across partitions.
When your application reaches the limit of what a partition can handle for your workload, Azure Storage begins to return error code 503 (Server Busy) or error code 500 (Operation Timeout) responses. If 503 errors are occurring, consider modifying your application to use an exponential backoff policy for retries. The exponential backoff allows the load on the partition to decrease, and to ease out spikes in traffic to that partition.
Scale targets for Table storage
The following table describes capacity, scalability, and performance targets for Table storage.
|Number of tables in an Azure storage account||Limited only by the capacity of the storage account|
|Number of partitions in a table||Limited only by the capacity of the storage account|
|Number of entities in a partition||Limited only by the capacity of the storage account|
|Maximum size of a single table||500 TiB|
|Maximum size of a single entity, including all property values||1 MiB|
|Maximum number of properties in a table entity||255 (including the three system properties, PartitionKey, RowKey, and Timestamp)|
|Maximum total size of an individual property in an entity||Varies by property type. For more information, see Property Types in Understanding the Table Service Data Model.|
|Size of the PartitionKey||A string up to 1 KiB in size|
|Size of the RowKey||A string up to 1 KiB in size|
|Size of an entity group transaction||A transaction can include at most 100 entities and the payload must be less than 4 MiB in size. An entity group transaction can include an update to an entity only once.|
|Maximum number of stored access policies per table||5|
|Maximum request rate per storage account||20,000 transactions per second, which assumes a 1-KiB entity size|
|Target throughput for a single table partition (1 KiB-entities)||Up to 2,000 entities per second|