![图片只有三个,如果可能的话请尽量列举更多,或者扩展其他方面的查询性能和优化 方面的知识图片说明
问题内容:
电话号码表t_phonebook中有一千万条数据,其中号码字段phone上创建唯一索引,
且电话号码全都有数字组成,要求统计号码为321的电话号码数量,
下面算法执行速度最快的是——————,最慢的是——————
A:SELECT count(*) FROM t_phone WHERE phoneno>='321',AND phoneno< '321A'
B:SELECT count(*) FROM t_phone WHERE phoneno LIKE '321%'
C: SELECT count(*) FROM t_phone WHERE phoneno substr(phoneno,1,3)='321'
D:都一样快**_
首先差别不大,读取大量数据将占用主要的时间,比较三个字母占用时间比例很小;就3种方式来说,A会比较第4个,B仅仅比较前3个,C还需要取出子串,所以,B最快
建立索引,或者条件查询,建议看一些SQL优化的书
实在不行就尝试着建立索引呗,如果还不行我也没辙了。
不看题目的话 大批量筛选可以把能够筛选出更多数据的条件放前面
最快的应该是C,最慢的是模糊查找的B