关于SQL语句的效率问题

来源:百度知道 编辑:UC知道 时间:2024/06/15 05:00:19
请问SQL语句怎样使用才能效率高一些?例如:select age from student where sex='boy' and name in ('mike','john','wolf') 。我想知道SQL执行是怎么样一个过程。如果我已经知道我要查询的人名肯定都是boy,但是加上boy是不是会缩小查询的范围,这样就提高了查询效率呢?请高手指点!谢谢!(这几项都不是索引项)
关键是现在由于需要,name有300多个名字

一般说来,对于sex这样的字段,索引不索引都没什么效果,如果知道是boy,最好就别加这个条件。

对于你这样的查询,应该给name建议索引。

对于比较实用的数据库管理系统(DBMS),系统会自动优化。对于比较垃圾的系统,很多时候没办法优化,比如有的数据库只要存在OR就不走索引,那么你上面的语句就没有三次select来得快。

首先不出现 IN,改为 NAME='MIKE' OR NAME='JOHN' OR NAME='WOLF',因为你写IN的话在后台还要把它分解OR来执行,效率肯定低了。
其次你这个语句除了上面我说的以外没有什么可以优化了,只有建立索引。

简单的增加了SEX='BOY',不会对执行语句的效率有提高,因为这个语句是执行全表扫描的。

如何知道SQL执行效率,可以从SQL SERVER中的“查询分析优化器”入手开始理解索引、表扫描和执行计划。