我有一个网站,数据库中有大约 50,000 人。为了生成我的统计数据,我需要从 3 个表中提取数据并将它们连接在一起。每天都有更多的数据进来,所以页面变得越来越慢。我想知道是否可以创建一个表来连接我需要的所有数据,然后从该表中运行我的 php。如果表创建可以每小时运行一次或其他一些内部设置以包含新数据,那就太好了。这是可能的和可取的吗?你能指点我一些资源吗?
我正在使用 mysql 作为数据库。
谢谢!
我这里有 3 张桌子 - 村级、居民级,如果他们缺席,还有一张缺席表及其结果。
SELECT EU, sum(TF) as TFsum, sum(TT) as TTsum, sum(KID) as Nkid,
sum(ADULT) as Nadult
from
(select EU, b.name as Person,
CASE
WHEN b.RIGHT_EYE_TF=1 THEN 1
WHEN b.LEFT_EYE_TF=1 THEN 1
WHEN c.RIGHT_EYE_TF=1 THEN 1
WHEN c.LEFT_EYE_TF=1 THEN 1
ELSE 0
END AS TF,
CASE
WHEN b.RIGHT_EYE_TT=1 THEN 1
WHEN b.LEFT_EYE_TT=1 THEN 1
WHEN c.RIGHT_EYE_TT=1 THEN 1
WHEN c.LEFT_EYE_TT=1 THEN 1
ELSE 0
END AS TT,
CASE
WHEN AGE <= 9 THEN 1
ELSE 0
END AS KID,
CASE
WHEN AGE >= 15 THEN 1
ELSE 0
END AS ADULT
from
villagedb a LEFT JOIN residentdb b
ON
a.CLUSTER = b.RES_CLUSTER
LEFT JOIN
absentdb c
on
b.RES_HOUSEHOLD_ID=c.RES_HOUSEHOLD_ID AND
b.NAME = c.NAME
GROUP BY EU, b.name
) S
GROUP BY EU