我正在开展一个统计项目,我们有兴趣在网站上记录不同列表的不同事件。
一个事件的例子是“点击徽标”,“点击更多信息”等等,每个事件都将由一个数字代表,我正在称之为偶数。
每天需要在这个表中存储大约20,000个事件,所以5年内,这个表中大约有18,000,000行。
以下是我的想法:
CREATE TABLE IF NOT EXISTS `stattableindexed` (
`id` int(10) unsigned NOT NULL auto_increment,
`lid` int(10) unsigned NOT NULL COMMENT 'Listing ID',
`serviceareaid` int(10) unsigned NOT NULL COMMENT 'Service Area ID',
`domainid` int(10) unsigned NOT NULL COMMENT 'Domain ID',
`bizgroup` int(10) unsigned NOT NULL COMMENT 'Business Group',
`eventid` int(10) unsigned NOT NULL COMMENT 'Event ID',
`eventtype` int(10) unsigned NOT NULL COMMENT 'Event Type',
`count` int(10) unsigned NOT NULL COMMENT 'Count of Events',
`timeunitid` bigint(10) unsigned NOT NULL COMMENT 'Time units',
PRIMARY KEY (`id`),
KEY `timeunitid` (`timeunitid`),
KEY `lid` (`lid`),
KEY `serviceareaid` (`serviceareaid`),
KEY `domainid` (`domainid`),
KEY `bizgroup` (`bizgroup`),
KEY `eventid` (`eventid`),
KEY `eventtype` (`eventtype`),
KEY `count` (`count`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
Timeunit将是一个unix时代,一天,所以我只保留每天同类事件的数量。
通过这种方式,我可以查询表格中的天数。
你认为这是个好主意吗? 如果不是更好的方法呢?