【分布式架构之旅-理论篇】数据库分库分表

前言

储备知识ing,很久之前写的。

MySQL集群

MySQL官方提供的是mysql-proxy方案,主要解决了高并发的问题,但是没有解决高可用的问题。一般项目都是读多写少。读的操作让mysql-slave去处理,写的操作让mysql-master去处理,这减少对主库的访问压力。高可用问题体现在mysql-proxy宕了和单点故障(如果我mysql-master出现了故障,那一切不就GG了)方面。

mysql-proxy.png

什么是分库分表

把原本存储于一个库的数据分块存储到多个库上,把原本存储于一个表的数据分块存储到多个表上。

为什么要分库分表

数据库中的数据量不一定是可控的,在未进行分库分表的情况下,随着时间和业务的发展,库中的表会越来越多,表中的数据量也会越来越大,对应着,CRUD的数据操作开销也会越来越大。服务器的资源(CPU、磁盘、内存、IO等)是有限的,最终数据库所能承载的数据量、数据处理能力将会遭遇瓶颈。

分库分表的种类

  • 垂直分割:将一个属性比较多、行的数据比较大的表、把这个表的不同属性进行拆分成不同表。因此来降低单库(表)大小的目的来提高性能。
    • 每个库(表)的结构都不一样。
    • 每个库(表)的数据至少有一列是一样的。
    • 每个库(表)的并集是全量数据。
  • 水平分割:以某个字段按照一定的规律(取模)将数据分割到多个库(表)中。
    • 每个库(表)的结构都是一样。
    • 每个库(表)的数据都不一样。
    • 每个库(表)的并集是全量数据。

分库策略

  • Hash取模,通过表的一列字段进行hash取code%1024.
  • Range范围取模,比如2016年的数据放到A库,2017年的数据放到B库。
  • List预定义

分库分表存在的问题

  • 多数据源的管理
  • 跨库事务的处理(伸缩性差)
  • 查询数据结果的结果集合并
  • 分布式全局唯一的id

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏蛋未明的专栏

Node.js从入门到深入——Node.js的了解

25140
来自专栏沃趣科技

基于Oracle的私有云架构探析(连载二)@【DTCC干货分享】

• RAC One Node 根据整合的数据库的SLA要求,还需要决定整合数据库所选用的数据库类型,在数据库的类型上,11GR2版本之前,要不是单实例要不是RA...

41470
来自专栏北京马哥教育

Puppet,Ansible,Saltstack 有哪些区别和联系

目前主流的自动化运维工具有puppet、ansible、saltstack,实际上每一个工具都基本上能够完成你的运维任务,也都是久经考验的。都有NB的地方,也有...

18720
来自专栏IT大咖说

面对海量数据存储,如何保证HBase集群的高效以及稳定

内容来源:2018 年 09 月 15 日,平安科技数据平台部大数据高级工程师邓杰在“中国HBase技术社区第五届MeetUp ——HBase应用与发展”进行《...

21430
来自专栏做全栈攻城狮

GitHub这么火,程序员你不学学吗? 超简单入门教程干货2

本GitHub教程旨在能够帮助大家快速入门学习使用GitHub,进行版本控制。帮助大家摆脱命令行工具,简单快速的使用GitHub。

8520
来自专栏程序员宝库

Node.js VS PHP:Web 开发的史诗级对决,你支持谁?

来自:开源中国社区 链接:https://www.oschina.net/news/91783/node-js-vs-php 现在,Web开发公司和开发人员可以...

385120
来自专栏做全栈攻城狮

程序员,一起玩转GitHub版本控制,超简单入门教程 干货2

本GitHub教程旨在能够帮助大家快速入门学习使用GitHub,进行版本控制。帮助大家摆脱命令行工具,简单快速的使用GitHub。

12130
来自专栏小灰灰

一个可扩展的报警系统Quick-Alarm

一个可扩展的报警系统Quick-Alarm 背景 日常的系统中,报警是不可缺少的一环,目前报警方式很多,最常见的有直接打日志,微信报警,短信报警,邮件报警等;而...

38080
来自专栏hadoop学习笔记

Hadoop的集群环境部署说明

Hadoop集群环境搭建是很多学习hadoop学习者或者是使用者都必然要面对的一个问题,网上关于hadoop集群环境搭建的博文教程也蛮多的。对于玩hadoop的...

10620
来自专栏Spark学习技巧

Apache Kafka:优化部署的 10 种最佳实践

Apache Kafka 肯定会像它的同名小说家一样不负众望,因为它能激奋新来者、挑战深度,若能更全面的理解它还会产生丰厚的回报。抛开文学,书归正传。遵循 ka...

20020

扫码关注云+社区

领取腾讯云代金券