首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何提高非选择性指标的使用效率?

问如何提高非选择性指标的使用效率?
EN

Stack Overflow用户
提问于 2013-09-11 10:41:42
回答 1查看 938关注 0票数 1

根据建议,指标必须是最有选择性的,以提高性能。作为一般的指导方针,我们应该在表的行中经常查询不到15%的表创建索引--索引列/列中的不同值的数量与表中的记录数的比率表示索引的选择性。

具有良好选择性的示例有10万条记录,其中一个索引列有88000个不同的值,则该索引的选择性为88'000 / 10'0000 = 0.88.。

现在说到重点。我有一张有18万张唱片的桌子。在搜索条件中经常使用的字段是(1)使用用户名的搜索记录。字段类型:-> null,nvarchar(32)。唯一的记录是使用Active_date的627 (2)搜索记录。字段类型:-> DateTime,Null。唯一的记录是85627。(3)使用Current_state字段类型搜索记录:-> Not Null,nvarchar(32)。唯一的记录只有2条“待定”和“关闭”。

目前,上述所有字段都已编入索引。在选择性方面,(1)和(3)不是最有选择性的,我应该用它们来改善绩效吗?

谢谢你,山姆

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-11 11:44:47

选择性并不能说明全部情况。假设有10份待处理的申请和1.000.000份已结案的申请。那么,状态索引并不是非常有选择性的,但它仍然非常有用!该索引将帮助人们快速浏览挂起的应用程序,这可能是他们经常做的事情。

另一个例子是票务系统。大部分工作都是在开票上完成的。因此,虽然票的状态不是很有选择性,但它仍然是索引的最佳候选。

只能使用索引中最左边的已知列来解析搜索。例如:

代码语言:javascript
复制
select * from Users where name = 'fred'

(name)上的索引可用于解析此查询,但(active_date, name)上的索引不能。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18738993

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档