在线客服
扫描二维码
下载博学谷APP扫描二维码
关注博学谷微信公众号
怎样解决数据库高并发的问题?解决数据库高并发使用缓存式的Web应用程序架构、增加Redis缓存数据库、增加数据库索引、页面静态化、使用存储过程、MySQL主从读写分离、分表分库、负载均衡集群。
解决数据库高并发的常见方案:
1)缓存式的Web应用程序架构:在Web层和DB(数据库)层之间加一层cache层,主要目:减少数据库读取负担,提高数据读取速度。cache存取的媒介内存,可以考虑采用分布式的cache层,这样更容易破除内存量的限制,同时增加了灵活性。
2)增加Redis缓存数据库
3)增加数据库索引
4)页面静态化:效率最高、消耗最小的就是纯静态化的html页面,所以们尽可能使我们的网站上的页面采用静态页面来实现,这个最简的方法其实也是最有效的方法。用户可以直接获取页面,不用像VC结构走那么多流程,比较适用于页面信息大量被前台程序调86传智播客旗下高端IT在线教育平台·博学谷,但是更新频率很小的情况。
5)使用存储过程:处理一次请求需要多次访问数据库的操作,可以把操作整到储存过程,这样只要一次数据库访问就可以了。
6)MySQL主从读写分离:当数据库的写压力增加,cache层(如Memcached)只能缓解数库的读取压力。读写集中在一个数据库上让数据库不堪重负。使用从复制技术(master-slave模式)来达到读写分离,以提高读写性和读库的可扩展性。读写分离就是只在主服务器上写,只在从服务上读,基本原理是让主数据库处理事务性查询,而从数据库处理ect查询,数据库复制被用于把事务性查询(增删改)导致的改变新同步到集群中的从数据库。MySQL读写分离提升系统性能:
1、主从只负责各自的读和写,极大程度缓解X锁和S锁争用。
2、slave可以配置MyISAM引擎,提升查询性能以及节约系统开。
3、master直接写是并发的,slave通过主库发送来的binlog恢复据是异步的。
4、slave可以单独设置一些参数来提升其读的性能。
5、增加冗余,提高可用性。实现主从分离可以使用MySQL中间件如:Atlas
7)分表分库:在cache层的高速缓存,MySQL的主从复制,读写分离的基础上,时MySQL主库的写压力开始出现瓶颈,而数据量的持续猛增,由MyISAM使用表锁,在高并发下会出现严重的锁问题,大量的高并MySQL应用开始使用InnoDB引擎代替MyISAM。采用Master-Slave制模式的MySQL架构,只能对数据库的读进行扩展,而对数据的操作还是集中在Master上。这时需要对数据库的吞吐能力进一步扩展,以满足高并发访问与海量数据存储的需求。对于访问极为频繁且数据量巨大的单表来说,首先要做的是减少表的记录条数,以便减少数据查询所需的时间,提高数据库的吞吐,就是所谓的分表【水平拆分】。
在分表之前,首先需要选择适当的表策略(尽量避免分出来的多表关联查询),使得数据能够较为均地分布到多张表中,并且不影响正常的查询。分表能够解决单表数据量过大带来的查询效率下降的问题,但是无法给数据库的并发处理能力带来质的提升。面对高并发的读写访,当数据库master服务器无法承载写操作压力时,不管如何扩展ve服务器都是没有意义的,对数据库进行拆分,从而提高数据库入能力,即分库垂直拆分。
8)负载均衡集群:将大量的并发请求分担到多个处理节点。由于单个处理节点的故不影响整个服务,负载均衡集群同时也实现了高可用性。负载均衡将是大型网站解决高负荷访问和大量并发请求采用的极解决办法。
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
django中间件的使用方法博学谷讲师总结
django中间件的使用方法,Django在中间件中预置了六个方法;初始化、处理请求前、处理视图前、处理模板响应前、处理响应后、异常处理。
7730
2019-07-02 17:31:17
Python可以干什么?Python胶水语言由来
Python是面向对象的编程语言,编译速度快,具有丰富和强大的库,被称为“胶水语言”,Python胶水语言由来,Python灵活运用能把用其他语言编写的各种模块联结在一起,擅于利用这些库就可以完成绝大部分工作。用Python从web开发到数据科学、机器学习等,Python在现实世界中的应用有无限可能。
6529
2019-09-29 10:47:44
2020年哪些热门IT岗位好找工作?
2020年热门IT岗位,由于疫情严重,导致临床医学、公共卫生、集成电路、人工智能、预防医学、应急管理、养老服务管理、电子商务专业人才紧缺,每个人都需要重新规划,了解当下热门iIT技术,提升自身的能力。
5022
2020-03-10 10:17:32
Python主要用来做什么?
Python可以做web应用开发、网络爬虫、AI人工智能与机器学习、处理数据用来分析、数据科学:包括机器学习、数据分析和数据可视化、脚本等方面开发。
4580
2020-06-30 11:53:32
Python 函数默认返回None原因是什么?
Python 函数默认返回None原因:定义的函数没有返回值,Python 解释器就会强行地默认给注入一段返回逻辑!实际上 Python 中有很多行为都是隐性的。
6032
2020-08-19 15:29:51