2016-11-05 61 views
1

我使用实体框架来实现多租户(同样分贝,相同的模式):我应该索引我的TenantId列吗?

public class Report : ITenantEntity 
{ 
    public Report() { } 
    [Key] 
    public int ReportId { get; set; } 
    [Required] 
    public int TenantId { get; set; } 
    public DateTime DateSent { get; set; } 
} 

我没有Tenant POCO,只是静态的ID。

我应该以某种方式在TenantId上进行索引吗?现在所有的查询都涉及对TenantId进行过滤,所以我想确保我没有通过没有适当的索引来杀死性能。

回答

1

当然,除了您在租户上过滤数据之外,适当索引的存在对于性能至关重要。进一步取决于数据库加载和数据库维护程序可能会有助于考虑其他优化措施:使某些索引成群集,使用分区表,使用联合数据库服务器等。

在某些时候,您可能会使租户在数据库级别隔离,可以使用参数化视图和存储过程来隔离数据库的物理层和表示层。无论如何,生产数据库的优化与EF自动生成的数据库方案相差甚远。

相关问题