创建视图的主要目的是为了方便查询数据,而不能提高查询效率,要提高效率只能通过其它的办法优化,比如创建索引之类的。
以下证明上面的说法:
按日查询出平均数据,数据量为58万条
select avg(ave_value) ave_value,to_date((CONCAT(to_char(create_time,'yyyy-mm-dd'),' 00:00:00')),'yyyy-mm-dd hh24:mi:ss')create_timefrom PDB_NWD_CPUM_D group by to_char(create_time,'yyyy-mm-dd');
耗时:0.422秒
下面创建一个视图跟上面语法的对应
create view PDB_NWD_CPUM_D_DAY as select avg(ave_value) ave_value,to_date((CONCAT(to_char(create_time,'yyyy-mm-dd'),' 00:00:00')),'yyyy-mm-dd hh24:mi:ss') create_time from PDB_NWD_CPUM_D group by to_char(create_time,'yyyy-mm-dd');
视图创建完之后我们查询这个视图:
select ave_value,create_timefrom PDB_NWD_CPUM_D_DAY;
耗时0.429秒
多运行几遍发现查询效率并没提高。
当然如果针对多张表做视图,将会体现出视图的好处--方便。