所以总体看下来,Oracle的筹划是一种很专业的解决筹划,对象全,架构相对复杂,数据同步是强一致性。所以在涉及交易的营业中对它加倍偏爱。
起首说下主大年夜复制,MySQL是典范的逻辑复制,主库端可以承载大年夜批量的并发,然则机能瓶颈很明显,主库的并发最后落到文件上照样串行的,抛开日记传输过程的开销,最大年夜的瓶颈就在于SQL_Thread的应悠揭捉?迟。就比如正午大年夜家出去吃饭,前台可以并发点很多的菜品,但后台的厨师就比如是SQL_Thread,他得一道菜一道菜做啊。怎么能做得更快呢?比如你叫了5分盖饭,他可以一次性炒出来,如许就可以或许大年夜大年夜进步效力,所以前台的小姑娘也会建议你和其他人点一样的菜,原因就一个字——快。这用在并行复制上就是类似的事理。MySQL 5.6没法做到细粒度的并行复制,只能在库级别,而在MySQL 5.7中可以做到表级别更细粒度的,这个改进就很明显了。
所以延迟的问题可以或许解决,后续的扩大就轻易多了,MySQL的扩大甚至可以做到指数级的扩大方法,如不雅许可一些低延时,大年夜量的读请求就可以慢慢分化。所以一主多大年夜的架构方法也是见怪不怪。
值得一提的是MHA的一主多大年夜架构中,如不雅多个大年夜库存在延迟,在切换的时刻MHA会补齐差别的日记,这是MHA的一大年夜亮点。
这时就须要扩大,就须要匹配的解决筹划,比如中心件的筹划,有的解决了一些通用的问题,有些侧重于某一方面。比如须要推敲sharding来分片,读写分别来做分担读写压力,前端海量拜访可以经由过程大年夜量的程度扩大来分担。
而MySQL的级联复制就更纯粹了,和Oracle比拟的最大年夜优势就是一个数据库可以既是主库也可以同时是大年夜库,起到承上启下的感化。
这种扩大方法的确是酸爽,在一些跨数据中间的场景,许可必定延迟的情况下照样有效武之地。比如你须要大年夜北美读数据,可以大年夜北美推送数据库到喷鼻港或者新加坡,再推送到北京。有了这种方法就很轻易扩大。当然在及时交易中照样存在一些瓶颈和缺点。
瞻望和后续弥补
如不雅抛开具体的数据库,整体来说数据量和营业量达到必定程度都邑碰着一系列的问题。这些都是痛点也是可贵,常见的问题如下:
- 单台办事器无法承载已有的压力
- 数据库单表容量越来越大年夜
- 大年夜量的读写需求无法均衡
- 资本如不雅扩容,应用修改较大年夜
- 资本的负载没法拆分,或者不易拆分
大年夜这个角度来说,MySQL是以架构和范围取胜,经由过程营业拆分和架构拆分可以或许实现线性扩大。而Oracle的扩大性固然没有那么好,但大年夜架构和营业层面来说也能做,这个后续有机会再细细说一说,可以拟一篇分布式方面的文┞仿。
简单总结一下,高可用的筹划选择很多,各家有各家的需求,能定制的定制,能开源的开源。大年夜道至简,只要知足了需求,体系稳定不背锅,那就是最好的筹划。
【编辑推荐】
- 数据库的应用你可能忽视了这些
- MySQL高可用筹划MHA的一些总结和思虑
- Oracle和MySQL的高可用筹划比较(一)
- 11 月全球数据库排名:PostgreSQL保持上升趋势 一路高涨
- 毕竟为什么要惹人数据库中心件
推荐阅读
Tomcat中Session对象部分属性值丢失问题的分析与解决
我们比来的一个 Java 项目在大年夜开辟情况迁徙到测试情况之后,碰到了一个异常诡异的问题——在将>>>详细阅读
本文标题:数据库高可用方案PK:选择Oracle还是MySQL?
地址:http://www.17bianji.com/lsqh/38483.html
1/2 1