InnoDB有事务,适合频繁修改数据的OLTP;Myisam是无事务,适合读取
那么主库InnoDB,备库Myisam呢?
slave机器的可以节省一半以上的空间
slave备份更快.读性能更高
其他略
具体操作如下
- 设置主库默认引擎为innodb,备库默认引擎为Myisam,并且备库不能支持innodb引擎
/etc/my.cnf中注释掉和Innodb配置相关的参数,修改default_table_type =myisam ,skip-innodb
直接将主库的数据dump到备库
配置m-s相关参数,启动即可
但是注意,这样的m-s大部分业务可行,在某些情况下是不行的,上线前你最好观察几天.
但是,这个操作增加了运维的复杂度,随着Redis等工具的兴起(Redis简单教程.md),方案本身吸引力将弱
两者比较
MyISAM VS InnoDB: 谁是引擎之王
这两者在处理上有很多不同,比如一个简单的不带where条件的count(*), MyISAM事先就统计好了行数,简单返回给你就行了; InnoDB是临时去统计的,要计算一阵子,
所以对于变动频繁的业务表,MyISAM就不是很合适,因为写动作多,而MyISAM是以读见长的,且要经常更新count(*),表格损坏恢复性还不好,但是对于一些参数表就比较合适了
对日志表、业务表,InnoDB比较合适,支持事务,功能也比较全面;当表上有写操作时,InnoDB是锁行的,而
MyISAM二逼是锁表的,比如我对第一行有个update操作,其他几个人的update/insert/delete都做不了了