mysql的InnoDB和Myisam引擎

InnoDB有事务,适合频繁修改数据的OLTP;Myisam是无事务,适合读取

那么主库InnoDB,备库Myisam呢?

可以的,有人在做了

  1. slave机器的可以节省一半以上的空间

  2. slave备份更快.读性能更高

  3. 其他略

具体操作如下

  1. 设置主库默认引擎为innodb,备库默认引擎为Myisam,并且备库不能支持innodb引擎

/etc/my.cnf中注释掉和Innodb配置相关的参数,修改default_table_type =myisam ,skip-innodb
  1. 直接将主库的数据dump到备库

  2. 配置m-s相关参数,启动即可

但是注意,这样的m-s大部分业务可行,在某些情况下是不行的,上线前你最好观察几天.


但是,这个操作增加了运维的复杂度,随着Redis等工具的兴起(Redis简单教程.md),方案本身吸引力将弱


两者比较

MyISAM VS InnoDB: 谁是引擎之王

  • 这两者在处理上有很多不同,比如一个简单的不带where条件的count(*), MyISAM事先就统计好了行数,简单返回给你就行了; InnoDB是临时去统计的,要计算一阵子,

  • 所以对于变动频繁的业务表,MyISAM就不是很合适,因为写动作多,而MyISAM是以读见长的,且要经常更新count(*),表格损坏恢复性还不好,但是对于一些参数表就比较合适了

  • 对日志表、业务表,InnoDB比较合适,支持事务,功能也比较全面;当表上有写操作时,InnoDB是锁行的,而MyISAM二逼是锁表的,比如我对第一行有个update操作,其他几个人的update/insert/delete都做不了了

这里写图片描述

猜你喜欢

转载自blog.csdn.net/wxid2798226/article/details/81709716