我有一张表,其中存储了近 1000 万行的人的信息。
目前 State 是 person 表上的一个 char(2) 字段。正如您所料,这会导致大量数据重复。如果我将 State 数据规范化到它自己的表中并在 person 表中为其创建一个 FK 会导致更快的查询时间吗?
前:
SELECT Name, City, State FROM Person WHERE State = 'WI'
后:
SELECT p.Name, p.City, s.Name as State
FROM Person p
INNER JOIN State s ON p.State == s.Id
WHERE s.Name = 'WI'
在我看来,这会提高性能,但在优化查询方面我远非专家。