1、用户基本信息表:id,name,pwd,注册time,最后登陆time,最后充值time,到期time,账户状态
2、充值码表:id,8位充值码,随机数,可用时间
3、充值记录表:id,user_id,time,充值码id用户经常存取,MYISAM表似乎插入、读取、修改单条数据速度更快一些,是否比较合适一些?修改充值码表的同时,要插入充值记录表(所以这两个表我想用InnoDB通过事物来保证一致性),最后修改用户基本表,但MYISAM不支持事物,请问,我如何能保证这三个数据表的一致性?如果在一个事物过程中断电了,InnoDB在重启crash recovery的时候,是继续完成这个事物,还是回滚?我的InnoDB出错之后经常报错无法自动恢复,启用InnoDB的crash recovery是不是需要设置什么东西啊?麻烦各位帮下忙,谢谢~

解决方案 »

  1.   

    回滚一般不会啊,检查一下你的错误日志。
    另外做好备份,打开BINLOG
      

  2.   

    MySQL官方文档 http://dev.mysql.com/doc/refman/5.1/zh/index.html
      

  3.   

    修改充值码表的同时,要插入充值记录表(所以这两个表我想用InnoDB通过事物来保证一致性),最后修改用户基本表,但MYISAM不支持事物,请问,我如何能保证这三个数据表的一致性?非事务性表没有REDO功能,你可以用触发器来修改另外的表。但是出错了也不回滚。还是建议用INNODB引擎如果在一个事物过程中断电了,InnoDB在重启crash recovery的时候,是继续完成这个事物,还是回滚?
    回滚。
      

  4.   

    从安全性角度讲, 用INNODB引擎比较好,出现问题事务回滚,保证数据的安全、一致性