我有一个表格说tbl_test
。在这张表中我有2.4 million
记录。我运行以下三个非常缓慢且令人沮丧的查询。从VIEW中做SELECT是非常慢的
select count(*) from tbl_test;
-- 2.4 mil records in ~9 seconds
select count(*) from tbl_test where status = 'active';
-- 2.4 mil records in ~9 seconds
select count(*) from tbl_test where status = 'inactive';
-- 0 records in ~0 seconds
我创建了一个观点说view_tbl_test
使用以下查询:
create view view_tbl_test as
select * from
(select count(*) count_active from tbl_test where status = 'active') x,
(select count(*) count_inactive from tbl_test where status = 'inactive') y,
(select count(*) count_total from tbl_test) z
现在,我从视图中选择只有单排和其采取像以前的时间相同。
select * from view_tbl_test limit 1;
我在这里做错了什么?有没有什么办法可以让视图在~0
秒内返回数据?
你为什么认为从简单的视图(未物化视图)选择会更快? – 2014-10-02 11:14:34
@IgorRomanchenko如果我使用Materialized视图,它会在任何时候返回结果吗? – 2014-10-02 11:51:42