有关 MySQL数据库常见的误解

错误印象一:InnoDB存储引擎适合写密集型应用,MyISAM适合读密集型应用


回答:这个问题大该在8,9年前,也就是2005年的时候在论坛是非常有争论的话题,而上述答案算是在那个年代的一种总结。其实这个答案仅回答了堆表与索引组织表在更新时的区别,其他很多问题没有考虑。到目前的MySQL 5.6为止,InnoDB存储引擎已经完胜MyISAM了,看不到任何其他应用使用MyISAM的必要性。当然,MyISAM存储引擎本身已经彻底停止开发了。


错误印象二:InnoDB存储引擎存在并发问题,大并发下性能较差


回答:InnoDB的并发问题其实一直是官方改进的重点,目前已经调优的非常不错,MySQL 5.7下只读查询可以轻松达到50W QPS就是最好的证明。另外,Oracle官方对于各种并发瓶颈也进行了优化,比如SSD盘并行刷新优化,重做日志优化,undo多线程purge优化等等,所以InnoDB存储引擎本身存在的并发问题其实已经很少了。如果是上层的并发瓶颈,比如电商秒杀问题,则可以通过线程池技术来进行优化。


错误印象三:MySQL复制是不可靠的,经常会导致数据丢失或者复制失败


回答:的确,在MySQL 5.6版本之前,MySQL的复制是存在一些问题的,复制可能是不可靠的。但是在2年半前发布的MySQL 5.6版本中,已经完全解决了复制可靠性问题。如果小伙伴们还出现出错问题,基本可以定义为配置问题。


错误印象四:MySQL复制是逻辑复制,所以速度慢,不及Oracle这类的物理复制


回答:逻辑复制肯定慢于物理复制?不一定吧,各种综合因素都很多吧。之前MySQL复制比较慢是因为其复制是单线程的,所以延迟问题比较严重。然MySQL 5.7、MariaDB 10.0已经支持并行复制功能,延迟问题基本已经解决。比如网易电商使用并行复制后,复制延迟从5个小时降低为0


错误印象五:MySQL复制不能保证主从数据完全一致,不适合数据严格一致要求的场景


回答:上述这个错误观点竟然出自淘宝的VP,只能说为了推广淘宝自己的OceanBase,已经不择手段的来抹黑MySQL了。MySQL 5.7已提供了数据零丢失的复制方法,配置一个参数就能解决。类似的PostgreSQL、Oracle也都是通过先写远程日志来保障数据零丢失,这本身并不是很新的技术。而网易也已经在云数据库中使用该技术有近3年的时间(InnoSQL早在5.5就已经支持),可以说是完全经过线上应用考验的技术。


错误印象六:sync_binlog需设置为0或者2


回答:MySQL 5.6版本之前存在组提交失效的问题,所以需要把这个参数设置为0或者2来提高性能。但这意味着开启了番多拉魔盒,存在很多的隐藏问题。MySQL 5.6,InnoSQL 5.5,MariaDB 5.5版本都已经解决组提交失效问题。so,sync_binlog务必设置为1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值