我正在为应用程序创建一个 Multi-Tenancy 数据库。我在每个表方法中都使用了 TenantID,并且效果很好。我正处于性能调整阶段。
我的问题是每个表中的每个 TenantID 是否应该被索引以进行优化搜索,因为数据库上的每个查询都将在此列上进行过滤?
期待任何建议。
谢谢
最佳答案
尽管在建立索引时需要考虑很多因素,但根据我的经验,(唯一的)聚集索引与 tenantId + PK
一样有效。所有 PK 查询都可以在组合键上查找。
这具有将tenantID 放在非聚集索引中的额外优势,因为SQL Server 使用聚集键作为从非聚集索引返回到表的引用。
不过要注意页面拆分,因为插入几乎总是在中间页面,这种方法肯定会优化读取。考虑 70 的填充因子并观察您的碎片,确保定期维护索引(无论如何您都想要)
祝你好运。
关于sql-server - 在 Multi-Tenancy 数据库中索引租户 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8144933/