wangfred1 发表于 2009-09-03 08:40

问个关于SQL执行效率的问题

select 语句,假设可以写在where后的形如a.id between "XXX" and "XXX",a.bdname matches "*xxxx*"这样的条件有若干个,数据量大概100W左右。那么是否先用其中一个条件提到临时表,然后再用其他的条件从临时表中提取更快些。又是否第一个条件是索引字段的条件的话可以快些?
还有另一种情况,如果不仅对本表字段有条件限制,还涉及到关联另一张表,是否先从本表中用部分条件提出至临时表后,再与另一张表关联要比用一个SQL来得更快些?

本人虽然用SQL有几年了,但确实没认真研究过。还请各位帮忙答疑解惑,先谢谢了。

wuicpp 发表于 2009-09-03 11:08

id字段必须要有索引,不然肯定会全表扫描了,name字段matchs的值,由于开头有通配符*,所以肯定用不上索引,它之后在id索引结果之后再去过滤,应该不用临时表再去实现了。可以测试一下两种方法的效率。毕竟实践出真知嘛,:-)
页: [1]
查看完整版本: 问个关于SQL执行效率的问题