我有 2 张桌子:
t_cities
(idCity
,idCountry
,name
,population
)t_countries
(idCountry
,name
)
t_cities
有 50000 行,所以我用英国的城市创建了一个视图(只有 1100 个):
CREATE VIEW v_city_uk AS SELECT * FROM t_cities WHERE idCountry = 140
到目前为止一切都很好,我得到了一个 1100 行的视图。
查询
SELECT COUNT(*) FROM v_city_uk
返回 1100,但解释:
EXPLAIN SELECT COUNT(*) FROM v_city_uk
表示它正在检查 50000 行以执行此查询。为什么?
有没有办法让这不会发生?因为我创建视图以加快查询速度,所以不一样。
编辑:感谢 matthewdavidson,我需要一个“汇总表”。