一个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='行为统计表'
这是我设计的一个行为统计表看下那些需要进行优化 

解决方案 »

  1.   

    需要查询一段时间内的数据比如 6月到9月 有的时候要具体到几号 比如6月15号 到 10月 15号
    那可以考虑做个汇总表,把里面包含了到天的汇总数据,这样速度就能稍微快一点。其实我觉得优化,有这么几种:1、sql语句的优化,加索引,分析执行计划。2、机器更强,内存更多,或者采用新的架构,把数据分散存储到不同的机器,到查询时,单独汇总,最后合并结果。3、在设计上做文章,预先在空闲时间把结果算好,存起来,到要用的时候,稍微汇总一下就行了。
    有点像,你回家了,你家人把已做好的但凉了的菜热一下,就能吃了。