美文网首页
分布式数据库

分布式数据库

作者: 范女青 | 来源:发表于2018-10-31 13:27 被阅读0次

分布式数据库的产生背景

传统单机数据库面临的挑战

以电商网站为例,在网站创建之初,日均访问量可能只有几百到几千人,这时整个业务后台可能就一个数据库,所有业务表都放在这个数据库中,一台普通的服务器就可以支撑,而且这种架构对业务开发人员也非常友好,因为所有的表都在一个库中,这样查询语句就可以灵活关联了,使用起来很便捷。

图1 所有业务表都在一个数据库中

但是随着业务的不断发展,每天访问网站的人越来越多,数据库的压力也越来越大。通过分析发现,所有的访问流量中,80%以上都是读流量,只有20%左右的写流量,这时可以通过读写分离来缓解数据库的访问压力。

图2 读写分离

由于网站的访问量越来越大,尽管采取了读写分离的方式,但随着数据库的压力继续增加,数据库的瓶颈越来越突出。这时我们发现,我们的网站演进到现在,交易、商品、用户的数据都还在同一个数据库中。然而在这个巨大而且臃肿的数据库中,表和表之间的数据很多是没有关系的,也不需要JOIN操作,理论上就应该把它们分别放到不同的服务器,即垂直分库。

图3 垂直分库

随着业务的不断增长,我们发现交易、商品、用户这些库都变得巨大无比,单机数据库已经无法满足业务的继续增长,这时可以考虑对这些表进行水平拆分,即同一个表中的数据拆分到两个甚至多个数据库中。以用户表为例,数据可以根据userid的奇偶来确定数据的划分。把id为奇数的放到DB1,为偶数的放DB2。

图4 水平分表

来源:https://juejin.im/entry/589abc01128fe10058fc542c

相关文章

  • 分布式数据库

    分布式数据库的产生背景 传统单机数据库面临的挑战 以电商网站为例,在网站创建之初,日均访问量可能只有几百到几千人,...

  • 大数据之HBase

    1、HBase是什么 Hbase是Hadoop Database的简称,是一个面向列式存储的分布式数据库,其设计思...

  • Database

    1 Insert 2 Delete 3 Update 4 Select 一个小项目

  • database

    存储过程高级篇 讲解了一些存储过程的高级特性,包括 cursor、schema、控制语句、事务等。数据库索引与事务...

  • database

    深入mysql: mysql与nosql: 关系型数据库和nosql数据库场景说明:关系型数据库把所有的数据都通过...

  • database

    1.查看所有databaseshow databases;+--------------------+| Data...

  • MySQL

    默认端口号3306 CREATE DATABASE ALTER DATABASE DROP DATABASE TI...

  • SQLite(简介)

    +++Categories = ["Database",]Tags = ["Database","SQLite",...

  • 关于国产数据库的46个问题

    国产分布式数据库未来趋势分析;国产分布式数据库选型标准;国产分布式数据库在成本上是否如宣传的那样比Oracle有较...

  • SQL

    A relational database is a database that organizes inform...

网友评论

      本文标题: 分布式数据库

      本文链接:https://www.haomeiwen.com/subject/tzzdzftx.html