专业网站建设品牌,十四年专业建站经验,服务6000+客户--广州京杭网络
免费热线:400-683-0016      微信咨询  |  联系我们

mysql查询语句超时,如何优化网站高并发访问_数据库

当前位置:网站建设 > 技术支持
资料来源:网络整理       时间:2023/3/7 1:38:41       共计:3582 浏览
mysql查询语句超时,如何优化网站高并发访问?

感觉面试过程中一定会问到的问题有三个,多线程,JVM,高并发!

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

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

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

什么操作呢?页面请求:一个简单的页面请求可能包含了很多内容,比如验证登录,静态页面加载,动态数据加载(涉及到访问数据库,缓存等等),图片加载,线程的启动和销毁!每一个操作都需要花费时间,总得加起来可能只有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等负载均衡中间件,将请求分布到不同的机器上,避免单个应用持续的处理引起血崩!

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

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

版权说明:
本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
·上一条:php怎么通过id获得数据库一行数据_数据库 | ·下一条:Mysql数据库有容量限制么_数据库

Copyright © 广州京杭网络科技有限公司 2005-2024 版权所有    粤ICP备16019765号 

广州京杭网络科技有限公司 版权所有