【问题标题】:Should I Index my TenantId column?我应该索引我的 TenantId 列吗?
【发布时间】:2017-03-19 00:10:40
【问题描述】:

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

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

【问题讨论】:

    标签: c# sql sql-server entity-framework ef-code-first


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-01-03
      • 2013-03-20
      • 1970-01-01
      • 2018-10-17
      • 2011-08-24
      • 2010-09-21
      • 1970-01-01
      相关资源
      最近更新 更多