Home >Database >Mysql Tutorial >如果对MySQL还停留在这个印象,就out了_MySQL

如果对MySQL还停留在这个印象,就out了_MySQL

PHP中文网
PHP中文网Original
2016-05-27 13:46:471265browse


笔者明白,有些错误印象是因为某些无良技术服务公司,为了赚钱而误导相关人员所致。有些问题是由于历史原因而导致的错误印象,但是任何事物都是发展的,或许有些问题早已在新版本中给解决了。为此,笔者整理了一些常见的MySQL错误印象,希望开发人员能够以发展的眼光来看待事物。

如何对MySQL还停留在这个印象,就out了

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

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

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

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

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

回答:的确,在MySQL 5.6版本之前,MySQL的复制是存在一些问题的,复制可能是不可靠的。但是在2年半前发布的MySQL 5.6版本中,已经完全解决了复制可靠性问题。如果小伙伴们还出现出错问题,基本可以定义为配置问题,有需求的可以联系笔者来帮你调优。使用笔者的开源MySQL版本InnoSQL,可以免费获得技术支持。

错误印象四: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
 

以上就是如果对MySQL还停留在这个印象,就out了_MySQL的内容,更多相关内容请关注PHP中文网(www.php.cn)!


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn