Каков наилучший способ хранения часто изменяемых данных? - PullRequest
0 голосов
/ 08 января 2020

У меня есть набор данных о 100k продуктов. Большинство полей не меняются вообще (например, имя, описание или размер), в то время как другие, например, количество на складе или цена, изменяются часто - десятки раз в день (цены зависят от курсов валют). Интересно, есть ли какое-либо преимущество в производительности для разделения часто изменяемых данных, или это вообще не имеет значения (или, может быть, даже такое разделение увеличивает время чтения / записи). Это ASP. NET Веб-приложение Core 3, размещенное в Azure (SQL база данных).

Сценарий # 1 - Все поля вместе - операции обновления для экземпляров продукта

public class Product 
{
public int ID {het; set;}
//rarely modified fields, like:
public string Name {get; set;}
public string Description {get; set;}
//frequently modfied fields, like:
public int Quantity {get; set;}
public decimal Price {get; set;}
}

Сценарий 2 - Часто изменяемые поля хранятся отдельно - операции обновления в экземплярах ProductQuantity и ProductPrice

public class Product 
{
public int ID {get; set;}
//rarely modified fields, like:
public string Name {get; set;}
public string Description {get; set;}
//one-to-one relationship with frequently modfied fields, like:
public ProductQuantity Quantity {get; set;}
public ProductPrice Price {get; set;}
}

public class ProductQuantity
{
public int ProductID {get; set;}
public Product Product {get; set;}
public int Quantity {get; set;}
}

public class ProductPrice
{
public int ProductID {get; set;}
public Product Product {get; set;}
public decimal Price {get; set;}
}

Спасибо за предложения!

...