各位达人,我MySQL数据库,涉及到有几十张表,表之间有关联,而且有的表的操作是频繁的(包括select,updata,insert),这种情况一般要如何选择数据表的类型.目前有两种MyISAM和InnoDB,前者应该就是易于操作但是不支持事务处理.后者支持事务处理还有外键关联,但是查询速度比较慢.请问对于这种问题应该怎么取舍呢?大伙平时一般都是怎么处理这种情况的?是以数据库的完整性为主还是效率为主.
请各位提点意见.
主要是用于web方式的OA系统.

解决方案 »

  1.   

    这种一般都是合起来用的。
    读的频繁的表用MYISAM。
    写和更新频繁的标用INNODB。
      

  2.   

    MYISAM的速度是INNODB无法比的。
    INNODB的完整性也是MYISAM无法比的。
    两个各有各自的优点。
      

  3.   

    问下2,3楼的:
    假如有两个表A
    a.id   a.info表B
    b.id  a.id  b.infoA是的内容很少更改,B的内容要频繁更改,那么我选择A表为MYISAM类型,B表为INNODB类型,定义B表中的a.id为外键应该没有问题的吧?
    或者不定义外键但是每次更新的时候都要进行完整性约束查询会不会反而得不偿失?
      

  4.   

    那就是使用MYISAM格式表格,每次进行操作时都要判断是否符合.这样就用存储过程或者触发器来进行了是不是呢?
      

  5.   

    触发器也要不用就不要用。
    我们的项目没有用到任何触发器。
    表也是MYISAM和INNODB混用。
      

  6.   

    那我现在这样理解不知道对不对:
    项目中表内容相对固定或者不需要频繁的更新的的表的话就用MYISAM格式,比如用户表,员工表.
    项目中一些需要频繁更新的表就用INNODB格式,比如一些订单表和记录表之类的.
    对表的更新一般都在跟辛前对数据的完整性等进行判断(使用存储过程或业务逻辑层)?这样来设计是否可以了???
      

  7.   

    嗯.现在差不多知道了.以后有问题会来麻烦你的 "骑着上帝看戏".
    ths!