MySQL数据库优化总结(4)

来源:未知 责任编辑:责任编辑 发表时间:2014-02-02 17:50 点击:

 
   宁可集中批量操作,避免频繁读写
 
系统里包含了积分部分,学生和老师通过系统做了操作都可以获得积分,而且积分规 则很复杂,限制每类操作获得积分不同,每人每天每类积分都有上限。比如登录,一次登录就可以获得1分,但是不管你登录多少次,一天只能累积一个登录积分。 这个还是简单的,有的积分很变态,比如老师积分中有一类是看老师判作业的情况,规则是:老师判了作业,发现学生有错的,学生改过了,老师再判,如果这时候 学生都对了,就给老师加分,如果学生还是错的,那就接着改,知道学生都改对了,老师都判完了,才能给老师加分。如果用程序来处理,很可能每个功能都会额外 的写一堆代码来处理这个鸡肋似的积分。不仅编程的同事干活找不到重点,还平白给数据库带来了很大的压力。经过和需求人员的讨论,确定积分没有必要实时累 积,于是我们采取后台脚本批量处理的方式。夜深人静的时候,让机器自己玩去吧。
 
这个变态的积分规则用批处理读出来是这样的:
 
     
?
1 select person_id, @semester_id, 301003, 0, @one_marks, assign_date, @one_marks
2          from hom_assignmentinfo   ha, hom_assign_class hac
3          where ha.assignment_id = hac.assignment_id
4               and ha.assign_date between @time_begin and @time_end
5               and ha.assignment_id not in
6                    (
7                         select haa.assignment_id from hom_assignment_appraise haa, hom_check_assignment hca
8                          where haa.appraise_id = hca.appraise_id and haa.if_submit=1
9                               and (
10                                      (hca.recheck_state = 3004001 and hca.check_result in (3003002, 3003003) )
11                                       or
12                                      (hca.recheck_state = 3004002 and hca.recheck_result in (3003002, 3003003))
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • mysql-mmm
  • mysqldump命令——MySQL数据库备份还原
  • Oracle数据导入MySQL的快捷工具:MySQL Migration Toolkit
  • 简简单单储存过程——循环一个select结果集
  • MySQL数据库十大优化技巧
  • Mysql安装笔记
  • Mysql主主复制架构配置
  • Mysql的Procedure 参数为NULL问题分析
  • MySQL Stmt预处理提高效率问题的小研究
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1