number321 发表于 2014-12-31 16:57

请教一个SQL语句工作方式的问题

select * from records where domain = 'abc.com' and host = 'www' and (一个较为占用资源的判断条件)

假如数据库中有100万条记录,domain为abc.com的有100条,在其中host=www的有10条,再其中符合括号中判断条件的有1条。

那么用上面的写法,是按下面哪种方式来工作的呢:
1.先按照domain='abc.com'的条件,筛选出100条记录,再根据host='www',在100条记录中筛选出10条,再根据后面占用资源的判断条件筛选出最终记录。
2.每一条记录,都按照where子句中的所有条件,判断是不是符合,最终得到匹配的记录。

我希望的是按照第1种方式工作,如果是第2种的话就太占资源了。假如工作方式是第2种的话,应该怎样优化这个查询语句呢?另外mysql遇到这样的语句自身会不会默认做优化呢?

页: [1]
查看完整版本: 请教一个SQL语句工作方式的问题