sql-server - 在 Multi-Tenancy 数据库中索引租户 ID

标签 sql-server indexing multi-tenant performance

我正在为应用程序创建一个 Multi-Tenancy 数据库。我在每个表方法中都使用了 TenantID,并且效果很好。我正处于性能调整阶段。

我的问题是每个表中的每个 TenantID 是否应该被索引以进行优化搜索,因为数据库上的每个查询都将在此列上进行过滤?

期待任何建议。

谢谢

最佳答案

尽管在建立索引时需要考虑很多因素,但根据我的经验,(唯一的)聚集索引与 tenantId + PK 一样有效。所有 PK 查询都可以在组合键上查找。

这具有将tenantID 放在非聚集索引中的额外优势,因为SQL Server 使用聚集键作为从非聚集索引返回到表的引用。

不过要注意页面拆分,因为插入几乎总是在中间页面,这种方法肯定会优化读取。考虑 70 的填充因子并观察您的碎片,确保定期维护索引(无论如何您都想要)

祝你好运。

关于sql-server - 在 Multi-Tenancy 数据库中索引租户 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8144933/

相关文章:

sql-server - 如何在 SQL Server varbinary(max) 字段中搜索字节序列?

c# - sql中的Varchar创建额外的空格

MYSQL关于Hash索引类型的索引有时会被忽略

ruby-on-rails - rails : Namespace redis on a per-request basis for a multi-tenency app

SQL Server - 返回 sysobjects 的架构

sql - 如何用数字表缩放——炸开内存和硬盘

php - 无法从 codeigniter 站点 URL 中删除 index.php?

c++ - 标准::交换();在 else 语句中使用时不起作用

具有自定义域的用户的 Azure AD B2B 身份验证错误 - AADSTS65005 : Using application 'My Application' is currently not supported

google-app-engine - 测试命名空间