如何有效优化Mysql瓶颈
发表于:2024-09-22 作者:千家信息网编辑
千家信息网最后更新 2024年09月22日,下文给大家带来关于如何有效优化Mysql瓶颈,感兴趣的话就一起来看看这篇文章吧,相信看完如何有效优化Mysql瓶颈对大家多少有点帮助吧。Mysql 瓶颈优化(从小业务到大业务的转变)假设一个网站(di
千家信息网最后更新 2024年09月22日如何有效优化Mysql瓶颈
下文给大家带来关于如何有效优化Mysql瓶颈,感兴趣的话就一起来看看这篇文章吧,相信看完如何有效优化Mysql瓶颈对大家多少有点帮助吧。
Mysql 瓶颈优化(从小业务到大业务的转变)
假设一个网站(discuz)从最开始访问量很小做到日pv千万,我们来推测一下它的mysql服务器架构演变过程。
1. 第一阶段
网站访问量日pv量级在1w以下。单台机器跑web和db,不需要做架构层调优(比如,不需要增加memcached缓存)。此时,数据往往都是每日冷备份的,但有时候如果考虑数据安全性,会搭建一个mysql主从。
2. 第二阶段
网站访问量日pv达到几万。此时单台机器已经有点负载,需要我们把web和db分开,需要搭建memcached服务作为缓存。也就是说,在这个阶段,我们还可以使用单台机器跑mysql去承担整个网站的数据存储和查询。如果做mysql主从,目的也是为了数据安全性。
3. 第三阶段
网站访问量日pv达到几十万。单台机器虽然也可以支撑,但是需要的机器配置要比之前的机器好很多。如果经费允许,可以购买配置很高的机器来跑mysql服务,但是并不是说,配置翻倍,性能也翻倍,到了一定阶段配置增加已经不能带来性能的增加。所以,此阶段,我们会想到做mysql服务的集群,也就是说我们可以拿多台机器跑mysql。但,mysql的集群和web集群是不一样的,我们需要考虑数据的一致性,所以不能简单套用做web集群的方式(lvs,nginx代理)。可以做的架构是,mysql主从,一主多从。为了保证架构的健壮和数据完整,主只能是一个,从可以是多个。还有一个问题,我们需要想到,就是在前端web层,我们的程序里面指定了mysql机器的ip,那么当mysql机器有多台时,程序里面如何去配置?discuz,其实有一个功能,支持mysql读写分离。即,我们可以拿多台机器跑mysql,其中一台写,其他多台是读,我们只需要把读和写的ip分别配置到程序中,程序自动会去区分机器。当然,如果不使用discuz自带的配置,我们还可以引用一个软件叫做 mysql-proxy, 使用他来实现读写分离。它支持一主多从的模式。
4. 第四阶段
网站访问量日pv到几百万。之前的一主多从模式已经遇到瓶颈,因为当网站访问量变大,读数据库的量也会越来越大,我们需要多加一些从进来,但是从的数量增加到数十台时,由于主需要把bin-log全部分发到所有从上,那么这个过程本身就是一件很繁琐的事情,再加上频繁读取,势必会造成从上同步过来的数据有很大延迟。所以,我们可以做一个优化,把mysql原来的一主多从变为一主一从,然后从作为其他从的主,而前面的主只负责网站业务的写入,而后面的从不负责网站任何业务,只负责给其他从同步bin-log。这样还可以继续多叠加几个从库。
5. 第五阶段
网站访问量日pv到1千万的时候,我们发现,网站的写入量非常大,我们之前架构中只有一个主,这里的主已经成为瓶颈了。所以,需要再近一步做出调整。比如,我们可以把业务分模块,把用户相关的单独分离出来,把权限、积分等也可以分离出来单独跑一个库,然后再做主从,也就是所谓的分库。当然也可以换一个纬度,把访问量或者写入量大的表单独分离出来,跑在一台服务器上,也可以把一个表分成多个小表。这一步操作,涉及到一些程序上的改动,所以需要事先和开发同事做好沟通和设计。总之,这一步要做的就是分库分表。
再往后发展,继续把大表分小表即可。 而国内阿里淘宝网站的数据量是巨量的,他们的数据库全部都是mysql,他们的mysql架构就是遵循分库分表这个原则的,只不过他们划分规则会有很多纬度,比如可以根据地域划分,可以根据买家、卖家划分,可以根据时间划分等等。
看了以上关于如何有效优化Mysql瓶颈详细内容,是否有所收获。如果想要了解更多相关,可以继续关注我们的行业资讯板块。
机器
网站
数据
阶段
访问量
配置
瓶颈
架构
业务
程序
服务
主从
多台
就是
集群
有效
也就是
分库
安全
也就是说
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
奉贤区企业软件开发咨询报价
ja软件开发工程师
文档传输到ftp服务器
软件开发应知应会题库答案
徐州计算机网络技术报价
中职生网络安全公约
查询数据库的路径
有没有国内各行业数据库
实况中超服务器满了进不去咋办
我的世界服务器封了怎么才能进去
互联网软件开发实践过程
青山区海航网络安全维护怎么样
国家网络安全宣传周 金融日
禹州服务器
烟雨红尘小说软件开发
网络安全大赛什么意思
北京超卡互联网科技
查看linux服务器内存大小
scsi 服务器
密码技术和网络技术交叉
数据库中object
mc服务器内方块乱掉
江苏云主机服务器工厂
python中网络安全模块
巨野县网络安全与信息化中心
怎么检索数据库
河北 网络安全公司
dht爬虫和服务器放哪
软件开发试用期目标
软件开发项目成员分工