У меня есть таблица tbl_test
. В этой таблице есть 2.4 million
записей. Я запускаю следующие три запроса, которые очень медленны и расстраивают.Выполнение SELECT с VIEW очень медленно
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
секунд?
Почему вы думаете, что выбор из простого представления (не материализованного представления) будет быстрее? –
@IgorRomanchenko будет ли он возвращать результаты не раз, если я использую материализованный вид? –