我有一个复杂视图,关联了5,6张表,且其中还有union all,如果select * from view的话,数据量将来可能会达到千万,但是我都会select * from view where xxID=y,数据量是100左右.因为现在数据量还小,没有做测试,不知道效率到底如何.因此,我在想,视图的工作原理到底是怎么样的,是以下描述的哪一种呢?
1.视图先把所有的数据查出来,然后再根据xxID=y过滤
2.视图在查原始数据的时候,就在过滤xxID=y的数据如果是第1种工作原理,那么查询之后,再进行where xxID=y将会耗费很多时间.还有一个问题,我在视图建立的时候,就使用了order by a,b,c
如果是第1种情况,那order by本身就会花费大量的时间,也许在视图中不加order,而是在select * from view where xxID=y order by a,b,c效率会更高些.各位朋友,能告诉我答案吗?