私は2つのテーブルを持っています:
t_cities
(idCity
,idCountry
,name
,population
)t_countries
(idCountry
,name
)
t_cities
50000 行あるので、英国の都市を含む VIEW を作成します (1100 のみ):
CREATE VIEW v_city_uk AS SELECT * FROM t_cities WHERE idCountry = 140
これまでのところすべて問題ありません。1100 行の VIEW が表示されます。
クエリ
SELECT COUNT(*) FROM v_city_uk
1100 を返しますが、EXPLAIN:
EXPLAIN SELECT COUNT(*) FROM v_city_uk
このクエリを実行するために50000行をチェックしていると言っています。なんで?
これが起こらないようにする方法はありますか?ビューを作成して、クエリが同じにならないように高速化するためです。
編集:「集計テーブル」が必要です。matthewdavidson に感謝します。