读写分离架构

读写分离的原理

读写分离是让主库处理事务性增删改,而从库处理查操作。数据库复制来把事务性操作的数据变更同步到从库。

读写操作有不同的实现方式,往往写操作更耗时,读操作在架构角度则有更多的选择,所以读写分离是架构及系统优化很重要的一种手段。

分区

分区是将持久化数据文件划分成多个小块,根据一定的规则把文件和索引进行分割,分区后的表还是一张表,但是在真是场景中mysql分区使用很少,分区往往用在一些其他大数据中间件下,如hbase,hdfs等,mysql的读解决方案常见的有分表和分库解决方案。

分表

当数据量达到一定程度后,导致处理性能不足,或者如果表中字段冷热数据比较明显,可以采用分表处理。就是把数据字段按照某种分表原则拆分到多个表中,这样可以把大表变成小表,不同小表中数据不重复,从而提高处理效率。

分库

分区和分表是对数据的拆分,对数据库性能有一定的提升,但是当数据发展到一定程度后,单纯的分表无法解决并发请求访问同一个数据库,此时数据库的瓶颈可能到了如网络IO,文件IO,CPU,内存上,这样造成单台服务器的容量,QPS、TPS接近或超过了单个数据库实例处理极限,此时往往采用垂直和水平结合的方式拆分数据,把数据存储服务拆分到多台数据库服务器上。

读写分离架构

主库负责写,从库负责读,一主多从,从而实现读写分离,最后可以依赖其他中间件对于读写两种场景特点进行优化,比如引入redis等缓存中间件或搜索引擎优化查询,引入mq机制优化写操作,降低后端数据库压力。

读写分离实现

分库分表实现方式类似,讲经常访问和不经常访问的字段拆分到不同的库表中。

以水平拆分为例

水平拆分是根据分片算法讲一个库表拆分到多个库表中,如按照ID最后一位对3取余,尾数是1的放到第一个库表,尾数是2的放到第二个库表。

原文发布于微信公众号 - 服务端技术杂谈(develop_king)

原文发表时间:2018-10-10

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏技术控

什么是IPFS / IPNS?

  IPFS,即星际文件系统,是一个内容可寻址的网络。这意味着,您不是要求网络查询特定网站或域名(例如www.ipfsfirst.com),而是要求提供特定内容...

64110

3种提升云可扩展性的方法

部署在亚马逊的云服务器中被认为是实现高可扩展性的好方法,同时只需要为您所使用的计算能力支付费用。不过您要如何从技术中获得最佳的可扩展性呢?

275100
来自专栏服务端技术杂谈

乐视支付架构

架构 乐视 订单架构 分库分表 构建一个支撑每秒十万只读系统并不复杂,无非是通过一致性哈希扩展缓存节点,水平扩展web服务器等。每秒钟数十万数据更新操作,在任何...

38080
来自专栏linux驱动个人学习

dm-verity

一、Device Mapper: dm-verity是内核子系统的Device Mapper中的一个子模块,所以在介绍dm-verity之前先要介绍一下Devi...

48160
来自专栏北京马哥教育

Web APP编程模型和IO策略

现代大型高性能网站诸如淘宝,京东,微博,FB,知乎等等,网站架构涉及很多知识。像业务分层,软件分割模块化,分布式部署,集群服务器,负载均衡等技术可以帮助架构师将...

37270
来自专栏高性能服务器开发

(八)高性能服务器架构设计总结1——以flamigo服务器代码为例

这篇文章算是对这个系列的一个系统性地总结。我们将介绍服务器的开发,并从多个方面探究如何开发一款高性能高并发的服务器程序。

19020
来自专栏深度学习那些事儿

深度学习-在ubuntu16.04安装CUDA9.1-总结(问题完全解决方案)

深度学习大火,为了赶上AI的班车,许多研究生本科生们都在搞深度学习。然而深度学习环境搭建必不可少,这篇文章是我多次为实验室搭建环境所积累起来的经验总结,希望所有...

62550
来自专栏张戈的专栏

Windows下bat批处理脚本使用telnet批量检测远程端口小记

多年没写过批处理了,来新公司的第一个 case 却是需要写一个 bat 脚本,批量更新采集 agent 的配置文件,其中就涉及到远程 IP 的端口检测。 本以为...

93770
来自专栏PingCAP的专栏

FoundationDB 学习 - 事务流程

不久之前,FoundationDB (后面用 fdb 简化) 重新开源,对于大家来说,这真的是一个非常好的消息。我也在第一时间下载了 fdb 的源码,开始研究...

519140
来自专栏北京马哥教育

Ext3 和 ext4 文件系统在线调整大小内幕

磁盘布局 为了更好的理解在线调整大小工作机制,我们首先需要理解 ext3 和 ext4 文件系统的磁盘布局,对于该功能的实现来说,这两个文件系统在磁盘上的结构是...

43260

扫码关注云+社区

领取腾讯云代金券