- 论坛徽章:
- 0
|
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在处理上有不一样吗?
谢谢 |
|