- 一个网站从开始最小的访问量到几千万时,数据库MySQL架构的演变过程如下
- 网站访问量日pv量级在1w以下。一般
单台机器跑web和db
- 网站访问量日pv达到几万。把
web业务和db分开
,并搭建缓存层
(redis/memcache)
。 - 网站访问量日pv达到几十万 ,就使用
mysql主从,一主多从
。为了保证架构的健壮和数据完整,主只能是一个,从可以是多个。 并使用mysql-proxy
, 来实现读写分离
,让前端的web数据写入哪个库。 - 网站访问量日pv到几百万。一主多从此时会造成数据的延迟,因此会使用
环形主从
,即 把mysql原来的一主多从变为一主一从,然后从作为其他从的主,而前面的主只负责网站业务的写入,而后面的从不负责网站任何业务,只负责给其他从同步bin-log。 - 网站访问量日pv到1千万的时候, 这一步要做的就是
分库分表
, 比如,我们可以把业务分模块,把用户相关的单独分离出来,把权限、积分等也可以分离出来单独跑一个库,然后再做主从,也就是所谓的分库。当然也可以换一个纬度,把访问量或者写入量大的表单独分离出来,跑在一台服务器上,也可以把一个表分成多个小表。
- 网站访问量日pv量级在1w以下。一般
pv
: 页面浏览量。来自浏览器的一次html内容请求会被看作一个PV。