我应该索引我的TenantId列吗?

本文关键字:列吗 TenantId 我的 索引 我应该 | 更新日期: 2023-09-27 18:16:29

我正在使用实体框架实现多租户(相同的数据库,相同的模式):

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上的过滤,所以我想确保没有适当的索引不会影响性能。

我应该索引我的TenantId列吗?

当然,除了在租户上过滤数据之外,是否存在合适的索引对性能也至关重要。此外,根据数据库负载和数据库维护过程,考虑额外的优化措施可能会很有用:使一些索引聚集、使用分区表、使用联邦数据库服务器等。

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