其实,我不知道它是如何看起来像问题的标题,它是否与问题确切相关,但我会尝试解释我的问题:从10(同样形成)的表中选择数据(创建视图)
我有一个命名为AdvertClick
表,除了Advert
表(通过“AdvertID”存储每个“广告”的统计数据)(如你猜存储我的广告列出了主表)。因此我需要在AdvertClick
表中存储每个广告点击数据(即“国家”,“浏览器”,“语言”等)。例如,代码如下从AdvertClick
表中获取顶级国家/地区数据。
SELECT Count(_ac.ID) AS Click, _ac.Country
FROM `Advert` _a
LEFT JOIN `AdvertClick` _ac ON _ac.AdvertID = _a.ID
WHERE _a.UserID = $UserID
GROUP BY _ac.Country
ORDER BY Click DESC
LIMIT 1
但是,我已经复制AdvertClick
表为AdvertClick0, AdvertClick1 ... AdvertClick9
,因为它的(唯一的统计数据表)已变得如此沉重,速度较慢。现在,我有10个桌子,所有的桌子都是相同的(意思是桌子)。我只是插入每个点击数据这样;
$TableName = "AdvertClick". $AdvertID % 10;
$SQL = "INSERT INTO ${TableName} ... VALUES (...)";
所以,现在我想要做同样的事情但失败。 我试过CREATE VIEW
这种方式非常不同,
CREATE ALGORITHM = TEMPTABLE VIEW _tmp_ (colums...) SELECT x,y,z
- >失败
CREATE VIEW _tmp_ (colums...) SELECT x,y,z JOIN AdvertClick0 _ac0
- >失败
等等
有没有人帮我这个(真烦人)的问题?
在此先感谢...
骨料,非规范化,并归档数据!在类似情况下,我们创建按日,月和年命名的每小时和每日归档表,其中包含总值。转储表,在您的情况下AdvertClick,从未持有超过3天的数据。 – Julien 2011-12-19 23:57:25
@Julien我不想分开表格了,我只是想加快我的数据系统,因为很多web开发者都这样做... – 2011-12-20 00:12:33
增加速度是我评论的主要观点:) – Julien 2011-12-20 00:19:04