网站平台架构演变史(二)

上篇文章大致降了网站架构的一个大致发展趋势,这篇咱们讲讲数据库。数据库在大并发的情况下是最容易出现问题的,往往都是由于写操作引发的网站访问缓慢或者崩溃,之前说过12306就是这个问题。

大并发的时候,打个比方,上下班高峰期经常会堵车,我们把并发访问量当做车流量,某个路段路口比作数据库,某路口就这么大,3车道直行,而车流量巨大的时候就会引发大量车缓慢前行甚至不动,这个就是并发,交通瘫痪了嘛,数据库不也是一样瘫痪吗。

之前我们讲的读写分离,就是一种解决方案,很多网站都是读操作大于写操作的,分开即可,就像车流量一样,转弯的提前在别的路口转弯,直行的不变。

那么当网站再进一步发展的时候,读写分离已经满足不了数据库的性能需求了,这个时候该怎么做呢?

1、分库,根据不同的业务把数据库切分,比如用户相关表和订单相关表分别放在user_db和order_db中,这样的做法可以很有效的减少数据库压力,但是这么做会增加业务的复杂度,比如分布式事务的最终一致性。在微服务架构中这是必须要解决的问题,再次不多说

2、表的水平拆分,很多企业都是这么做的,比如淘宝,人家水平拆分根据主键id取模后分别放在不同的表(或者库)中,举个栗子,我们自家的表示这样的

日期6位+随机10位字幕数字组合(分布式的根据算法产生的绝对唯一不重复主键),提取前六位数字取模,根据取模的数字来作为保存到不同表(库)中的依据

还有一种水平拆分是定时把一些不用的数据放进别的表中,冷热数据分离,这也是一种做法

3、表的垂直拆分,垂直拆分是指把数据库列,根据某些列被访问的频率高低,来决定,频率高的放在主表,频率低的放在从表,大家都有一个相同的主键,这是主从表的交集,便于管理和操作

好吧,到此,解决数据库瓶颈的手段大致如此,不论分库还是分表,最终的目的都是优化网站的性能。

本文分享自微信公众号 - BeJavaGod(wxleechenxiang)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-04-24

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Golang语言社区

分布式NewSQL数据库TiDB

TiDB 是 PingCAP 公司基于 Google Spanner / F1 论文实现的开源分布式 NewSQL 数据库。 https://github.co...

576100
来自专栏CaiRui

memcached服务

介绍 它是一套数据缓存系统或软件 用于动态应用系统中缓存数据库的数据,减少数据库的访问压力,达到提升性能的效果,实际应用环境中多用于数据库的cache的应用。它...

42080
来自专栏云计算D1net

通过数据所有权的角度看待云迁移之旅

业务向云计算的过渡为全球企业提供了巨大的机遇。人工智能、数据分析、区块链、物联网(IoT)等高价值服务快速增长,使企业能够以前所未有的方式从数据中获得变革性的洞...

40270
来自专栏云计算D1net

未来的云计算战场中,存储是下一轮战线

导语 在复杂的云环境中,价格削减已经开始逐步局限于虚拟机。这使得服务提供商能够长期在其产品组合的剩余部分中利用其稳定增长的利润率。我们正在目睹的是一个即将扩展到...

44880
来自专栏漏斗社区

工具 | w3af系列 入门篇(二)

上期斗哥已经为大家介绍了w3af扫描器的安装。本期,我们将学习如何使用w3af进行扫描。开始扫描任务在本文第四部分,如果你第一次使用w3af,建议从第一部分开始...

42960
来自专栏漏斗社区

确认过眼神,ZZCMS 8.2 任意文件删除是你想要的

0x00 背景 本周,将zzcms8.2的源码的GetShell方法与大家一同分享,在上周有说过这个CMS比较适合新手或想要入坑PHP代码审计的同学练手,所以分...

39880
来自专栏Golang语言社区

48. 访问MySql数据库增删改查和连接池及空字段处理 | 厚土Go学习笔记

和上一节相比,go 语言访问 MySql 数据库可以有更好的写法,今天来讲一下连接池。同时,也演示一下当表字段内容为 NULL 时,go 语言的处理。 首先我们...

46180
来自专栏漏斗社区

蛙啊!老母亲给你整理了DEDECMS漏洞集合,快回家!

最近dedeCMS爆了好多洞(0day),于是将最近的漏洞进行复现和整理便成为了本篇漏洞集合。期待师傅们的指导与交流。 cookie伪造导致任意前台用户登录 ...

2.6K70
来自专栏云计算D1net

如何从传统的IT迁移到云端

从架构师到开发人员,从传统IT到云端的镀金工作都有一条路。 ? 传统的IT技术人员(例如企业架构师,开发人员和网络工程师)都投入到云计算事业,这不仅可以提供就业...

42580
来自专栏云计算D1net

云应用程序很慢?原因在应用,而不是云

上午7点,你早早地赶到办公室,希望在没有他人访问公司公有云的时候,库存应用程序能做好更改的准备。然而,即使早上这段时间只有少量的用户在线,应用的性能仍然乏善可陈...

33050

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励