在Visual FoxPro中为数据表创建索引的目的是

1、在VisualFoxPro中为数据表创建索引的目的是()A提高查询的检索功能B创建唯一索引C归类D创建主码2、在数据库设计中,将E-R图转换成关系数据模型的过程属于(... 1、在Visual FoxPro中为数据表创建索引的目的是( )
A提高查询的检索功能 B创建唯一索引 C归类 D 创建主码
2、在数据库设计中,将E-R图转换成关系数据模型的过程属于( )
A. 需求分析阶段 B. 逻辑设计阶段 C. 概念设计阶段 D. 物理设计阶段
展开
 我来答
爱可生云数据库
2021-03-16 · MySQL开源数据库领先者
爱可生云数据库
爱可生,金融级开源数据库和数据云服务整体解决方案提供商;优秀的开源数据库技术,企业级数据处理技术整体解决方案提供商;私有云数据库云服务市场整体解决方案提供商。
向TA提问
展开全部

大部分开发会了解这样的《开发规范》:创建索引要选择区分度高的字段。他们会认为区分度低的字段不适合创建索引或者不适合添加到组合索引里面。但是这样的操作会导致很多慢查。举例来说:

select  * from  tab where a=1 and b=2;


场景 1 

符合 a=1的记录数有 10w 条记录 ,b=2 有 1000 条记录。如果只是创建idx_a(a),sql 请求通过索引idx_a访问 10w 条件记录,然后还要逐一匹配 10w 条记录中的 status,找到符合 b=2的记录。这个动作会导致慢查。如果创建组合索引idx_ab(a,b),sql 请求通过索引idx_ab可以直接定位到 1000 条记录,无需额外的过滤。这样减少访问 9900 条记录的时间,提升查询速度。

场景 2 

符合 a=1的有 100 条记录,status=2 有 10 条记录。其实场景 2 因为数据量比较少,直接访问 100 条记录和定位到 10 条记录的时间消耗相差不大,量变不足以引发质变,可以忽略了。


Tips:

  • 创建索引的目的是通过索引尽可能找到匹配 where 条件的行,减少不必要的回表,提高查询效率;

  • 需要辩证地看待区分度比较低的字段在组合索引中的作用。在组合索引的情况下,我们不能只是单纯地看字段的区分度,而是要看符合条件的记录数是多少。符合条件的记录越少,性能越好。

却彤云S4
2011-08-19 · TA获得超过1.3万个赞
知道大有可为答主
回答量:1.2万
采纳率:0%
帮助的人:9101万
展开全部
AB
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式