(单选题)
电话号码表t_phonebook中含有100万条数据,其中号码字段phoneon上创建了唯一索引,且电话号码全部由数字组成,要统计号码头为321的电话号码的数量,下面写法执行速度最慢的是( )。
A.select count (*)from t_phonebook where phoneno>='321' and phoneno<'321A'
B.select count (*)from t_phonebook where phoneno like'321%'
C.select count (*)from t_phonebook where substr(phoneno,1,3)='321'
D.select count (0)from t_phonebook where phoneno like'321%'
参考答案:C
参考解析:
这道题,分析思路是从索引是否失效出发!A项:使用<>、not in 、not exist,对于这三种情况大多数情况下认为结果集很大,一般大于5%-15%就不走索引而走FTS(全表扫描)。所以A项可能索引失效也可能不失效,不当选;C项:在索引列上使用函数。如SUBSTR,DECODE,INSTR等,对索引列进行运算,索引失效。需要建立函数索引就便可以解决,C项是最慢的。当选;故本题正确答案选C。
知识点:细节题 英语 阅读理解 金融业务 模考估分