一、集群化方案

1、MySQL应用的演化

MySQL与HBase说到最核心的点,是一种数据存储方案。方案本身没有对错、没有好坏,只有合适与否。相信多数公司都与MySQL有着不解之缘,部分学校的课程甚至直接以SQL语言作为数据库讲解。我想借自身经历,先来谈谈MySQL应用的演化。

只有MySQL

笔者之前曾在一家O2O创业公司工作,公司所有数据都存储在同一个MySQL里,而且没有任何主备方案。相信这是很多初创公司会用到的一个典型解决办法,当时这台MySQL为用户、订单、物流服务,同时也为线下分析服务。

单实例的问题:

一旦MySQL挂了,服务全部停止;
一旦MySQL的磁盘坏了,公司的所有服务都没有了 (一般会定时备份数据文件)。

主从方案

随着业务增加,单个DB是无法承载这么多请求的。于是就有了主从复制、读写分离的解决方案。

master只负责写请求,slave同步master用来服务读请求:

为了扩展读能力可以增加多个slave;
允许slave同步有一定的延迟;
一致性要求严格的,可以指定读主库。

主从功能的问题:

需要增加管理Proxy层,分配写请求、读请求;
节点故障:其它节点应该快速接管故障节点的功能。

垂直拆分

业务继续增长,master甚至无法承载所有的写请求,数据库需要按业务拆分。

垂直拆分的问题:

线下分析,需要在业务代码里join各个表。因为拆成多个库,已经无法join了。
不容易做数据库的事务性,用户余额减少与下单成功的情况下无法使用MySQL的事务功能。

水平拆分

业务继续增长,订单表有大量的并发写入,而且已经有了几千万行数据。

原文链接

从MySQL到HBase:数据存储方案转型的演进相关推荐

  1. HBase实战 | 从MySQL到HBase:数据存储方案转型的演进

    作者介绍 杨宏志,知乎首页架构负责人,主要负责首页工程化建设.工程架构优化.性能提升等工作.知乎专栏:https://zhuanlan.zhihu.com/c_195355141 本文转载自dbapl ...

  2. 服务端指南 数据存储篇 | 选择合适的数据存储方案

    在服务端会经常遇到数据存储的选型问题,是选择使用关系型数据库 MySQL,还是选择内存数据库 Redis,还是选择文档数据库 MongoDB,还是选择列族数据库 HBase, 还是选择全文搜索引擎 E ...

  3. 选择合适的数据存储方案

    在服务端会经常遇到数据存储的选型问题,是选择使用关系型数据库 MySQL,还是选择内存数据库 Redis,还是选择文档数据库 MongoDB,还是选择列族数据库 HBase, 还是选择全文搜索引擎 E ...

  4. mysql更改数据库数据存储目录_MySQL更改数据库数据存储目录

    MySQL数据库默认的数据库文件位于/var/lib/mysql下,有时候由于存储规划等原因,需要更改MySQL数据库的数据存储目录.下文总结整理了实践过程的操作步骤. 1:确认MySQL数据库存储目 ...

  5. Windows下MySQL数据库更改数据存储位置

    Windows下MySQL数据库更改数据存储位置 1.创建一个新的存储数据文件 比如,我创建了一个文件  E:\MySQL_Service ,用来放mysql数据. 2.找到配置文件my.ini和my ...

  6. Android Learning:数据存储方案归纳与总结

    前言 最近在学习<第一行android代码>和<疯狂android讲义>,我的感触是Android应用的本质其实就是数据的处理,包括数据的接收,存储,处理以及显示,我想针对这几 ...

  7. java sql变更存储,MySQL更改数据库数据存储目录,mysql数据存储

    MySQL更改数据库数据存储目录,mysql数据存储 MySQL数据库默认的数据库文件位于 /var/lib/mysql 下,有时候由于存储规划等原因,需要更改 MySQL 数据库的数据存储目录.下文 ...

  8. 分布式医疗大数据存储方案研究综述

    摘要 医疗数据属于大数据的一种,具有数据量大.增长迅速.多模态.高价值.重隐私等特点.针对医疗数据特点,如何对其进行统一.高效的组织管理是目前重要的研究方向.为此,通过阐述医疗数据特点,分析其存储需求 ...

  9. tinyFlash:一种超轻量级的嵌入式单片机flash KV 数据存储方案

    tinyFlash 一种超轻量级的flash KV数据存储方案 Github 地址:https://github.com/ospanic/tinyFlash 设计原理 本方案采用两个扇区轮流使用的方法 ...

最新文章

  1. C++primer 9.2.1节练习
  2. 用径向函数和球谐函数计算氢原子能级并验证维里定理
  3. HoloLens开发手记-凝视 Gaze
  4. 前端学习(2008)vue之电商管理系统电商系统之获取静态属性列表
  5. 利用tushare进行对兴业银行股价的爬取,并使用numpy进行分析
  6. docker-1 初识docker
  7. SGU 134.Centroid( 树形dp )
  8. VB打开资源管理器并指定文件
  9. java元组_Java元组Tuple介绍与使用
  10. Eclipse 配置
  11. k-means聚类分析的C++实现
  12. JobTracker作业启动过程分析
  13. 顺丰该不该开除删库的运维工程师?
  14. css小猫笑起来的动画
  15. 红帽操作系统 RHEL 8.1 官方ISO镜像下载
  16. cc讲故事_停止讲故事
  17. [机缘参悟-50]:鬼谷子-第十二符言篇-当好领导者的艺术:守其位,观四方,洞危险,广言路,虚谏言,定规则,明赏罚,符名实,得民心。
  18. 少数派实测报告:AI巨无霸模型GPT-3 | 附送API 调用方法「AI核心算法」
  19. 序列的运算、操作、函数/方法
  20. php气泡效果,ps绘制漂亮透明的泡泡效果

热门文章

  1. 企业文档易泄密?文件外发管控防止文件泄露....
  2. 退出vim_如何从Vim退出?
  3. python实现一个简单的接口与前端交互
  4. Mac OS上PHP环境配置
  5. 荣耀品牌全面升级背后:以战代守,深蹲起跳
  6. win10更改计算机属性,Win10电脑怎么修改系统字体?详细更改教程请看这里!
  7. 项目成功经验分享:做好项目承诺管理
  8. mysql的mvcc_MySQL的MVCC机制
  9. 主流的RPC框架有哪些
  10. html 字母符号显示,HTML CSS 特殊字符表