600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > mysql 查询qps 如何优化网站高并发访问 – 数据库 – 前端 vb连接mysql

mysql 查询qps 如何优化网站高并发访问 – 数据库 – 前端 vb连接mysql

时间:2021-08-08 10:08:51

相关推荐

mysql 查询qps 如何优化网站高并发访问 – 数据库 – 前端 vb连接mysql

尽管工作过程中基本不用这三个要命的东西!还是阻挡不了面试官的趋之若鹜,下面就围绕其中一个---高并发,来说下自己的理解!

何谓并发?同时处理操作!

何谓高并发?同时处理很多操作!

什么操作呢?页面请求:一个简单的页面请求可能包含了很多内容,比如验证登录,静态页面加载,动态数据加载(涉及到访问数据库,缓存等等),图片加载,线程的启动和销毁!每一个操作都需要花费时间,总得加起来可能只有200ms,但是如果你的服务器处理能力只能是一个请求级别的,那么100万个请求,你就需要20万秒,大概是几天的时间!

当然实际生活中大家没有这么水的服务器,换句话说,大家可以通过选择好的服务器来提高大家的并发能力!也就是说硬件的指数型升级能让大家应付高并发,但是事与愿违,如果处理一个请求占用的是100k内存,那么100万请求就需要100万M,也就是差不多100G的内存!这无疑是现实生活中还没有的!

而且单机服务器容易受到网络,断电等多方面原因的影响!所以一个分布式集群就是大家处理高并发最有效的方法!

在此之前,大家先来熟悉几个关于高并发的关键参数!

QPS:每秒处理的请求数量!

响应时间:处理一个请求需要的时间!

吞吐量:单位时间内的处理请求数量!

最大并发数:同一时间能支持的最大请求数!

从这些指标来看,大家提高并发量有两种方式:提高处理速度和减少处理时间!

一般来说有下面这些常规办法:

1,更多的静态资源:将代码中的大量枚举(容器加载时写入map,放入本地缓存),数据库中的定义表(定时任务放入缓存),固定配置,HTML文件等静态化处理,缓存起来!

2,图片服务器:一般来说,图片在一个页面上属于数据量比较大的东西,尽量避免动态数据和图片的顺序渲染,使用图片服务器分离数据和图片!

3,优化代码:尽量避免多层循环,避免多次访问数据库,使用多线程提高cpu使用率和执行速度,使用java8的流式处理和并行处理提高速度!

4,数据库:采用分库分表,mysql5.7之后,据说可以支持秒级百万级数据查询。速度相当之快,使用八库1024表,可以满足数据库一秒数百万的并发!同时可以开启缓存,写入存储过程等加快访问时间!分库分表之后还可以根据分表字段使用联合查询,避免了大多数数据库架构分布式之后不能联合查询的缺点!

5,使用内存型数据存储:使用redis等内存缓存可以提高读写速度,在数据落库之前快速读写数据,使用mongodb等作为大字段,多字节的key value保存方式,防止关系型数据库的不足!

6,负载均衡:使用nginx等负载均衡中间件,将请求分布到不同的机器上,避免单个应用持续的处理引起血崩!

总之,高并发是一项程序员必不可少缺的技术,也是面试必问的知识点,只有直面它,解决它才能对技术有更深的认识!

高并发的路上踩了很多坑,以后再记录下这些坑,和大家共勉!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。