前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >读写分离架构

读写分离架构

作者头像
春哥大魔王
发布2018-10-22 09:54:23
7690
发布2018-10-22 09:54:23
举报

读写分离的原理

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

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

分区

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

分表

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

分库

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

读写分离架构

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

读写分离实现

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

以水平拆分为例

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-10-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 春哥talk 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 读写分离的原理
    • 分区
      • 分表
        • 分库
          • 读写分离架构
          • 读写分离实现
            • 以水平拆分为例
            相关产品与服务
            云数据库 SQL Server
            腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档