一个gm后台管理系统,用来接收客户端发过来的数据进行插入的操作和对数据进行统计。如何对这样的表进行优化,插入的数据应该不小 后台还要对数据进行展示和计算。
CREATE TABLE `gm_count` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`behavior_id` int(11) NOT NULL COMMENT '行为id',
`behavior_name` varchar(20) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL COMMENT '行为名称',
`behavior_consume` int(11) DEFAULT NULL COMMENT '消耗',
`behavior_produce` int(11) DEFAULT NULL COMMENT '产出',
`behavior_number` int(11) DEFAULT NULL COMMENT '次数',
`behavior_time` int(11) DEFAULT NULL COMMENT '时间',
PRIMARY KEY (`id`),
KEY `behavior_id` (`behavior_id`)
) ENGINE=InnoDB AUTO_INCREMENT=48 DEFAULT CHARSET=utf8 COMMENT='行为统计表'
这是我设计的一个行为统计表看下那些需要进行优化
CREATE TABLE `gm_count` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`behavior_id` int(11) NOT NULL COMMENT '行为id',
`behavior_name` varchar(20) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL COMMENT '行为名称',
`behavior_consume` int(11) DEFAULT NULL COMMENT '消耗',
`behavior_produce` int(11) DEFAULT NULL COMMENT '产出',
`behavior_number` int(11) DEFAULT NULL COMMENT '次数',
`behavior_time` int(11) DEFAULT NULL COMMENT '时间',
PRIMARY KEY (`id`),
KEY `behavior_id` (`behavior_id`)
) ENGINE=InnoDB AUTO_INCREMENT=48 DEFAULT CHARSET=utf8 COMMENT='行为统计表'
这是我设计的一个行为统计表看下那些需要进行优化
那可以考虑做个汇总表,把里面包含了到天的汇总数据,这样速度就能稍微快一点。其实我觉得优化,有这么几种:1、sql语句的优化,加索引,分析执行计划。2、机器更强,内存更多,或者采用新的架构,把数据分散存储到不同的机器,到查询时,单独汇总,最后合并结果。3、在设计上做文章,预先在空闲时间把结果算好,存起来,到要用的时候,稍微汇总一下就行了。
有点像,你回家了,你家人把已做好的但凉了的菜热一下,就能吃了。