免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1700 | 回复: 2
打印 上一主题 下一主题

请问:非PK_index的执行效率 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-07-05 14:37 |只看该作者 |倒序浏览
Dear all

   请问一个问题,建立INDEX可以提高QUERY时的效率

   如果select的where子句有用到
         字段 连接符 表达式
   若在字段上有建立相应index时,可以根据已建立的index b-tree去找到相关记录的rowid,然后根据rowid去找到select后面的内容

   我不太明白的是,对于非主键型的index,他的执行效率和主键型的index(带范围型的匹配)性能有差多少

   具体解释如下:
   table:dept
   columns:dept_no(pk),dept_name,dept_type
   在dept_no上建立PK-INDEX
   在dept_type上建立一般的index

   那下面的语句
   select * from dept where dept_no like 'M%' (返回100笔)
   select * from dept where dept_type = 'ACC'   (返回100笔)

   完全两个没有关系的sql,是不是没有可比性

   之所以我会提这样的问题,是因为:使用pk_index,若字段与表达式中间用'='连接时,肯定速度很快,但如果用上面的like这样,他也是找到所有相关的rowid,然后再用rowid去找相应的记录,他的执行方法和我的第二个sql语句一样,两条都返回100条,是不是他们的执行时间差不多.
   我不知道是不是对于PK-INDEX及一般的index在处理上有不一样吗?

   谢谢

论坛徽章:
0
2 [报告]
发表于 2006-07-05 17:24 |只看该作者
生成执行计划看看

论坛徽章:
0
3 [报告]
发表于 2006-07-05 19:42 |只看该作者
same
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP