数据库高并发写入,怎么降低数据库的压力?

sunny__小点


在高并发写入情况下如何缓解数据库的压力?这个需要实际的业务场景选择最为合适的方案进行调整。解决思路大致如下

  • 削峰分治,在大量写入的情况下通过削峰,分治减少数据库IO次数来缓解数据库压力。
  • 如果写与读都很多的情况中,可以同时通过缓解读给数据库带来的压力来减轻数据库压力。

消息队列削峰与批量写入

使用消息队列如rabbitmq等可以实现削峰的效果。多个消费者实现分治,同时,开始数据库事务通过拼接语句实现批量写入,减少数据库IO可缓解数据库压力。



使用缓存与数据库索引

如使用redis等对常被请求的数据进行缓存。减少查询时语言进行数据库连接的次数,缓解数据库的压力。结合实际场景合理的建立索引有助于提高查询效率同时减轻数据库压力。

数据库读写分离

大量的数据连接如果只靠一台数据库服务器支撑的话会压力很大有可能导致服务器崩溃。所以采用读写分离来减轻数据库的压力。主负责NonQuery操作,从负责Query操作。



分库分表

根据实际情况进行分库分表,通过分表水平分割数据提高查询速率,通过分库垂直拆分,减轻数据库压力。



以上就是高并发情况下缓解数据库压力的解决方案,希望对你有所帮助。


聚IT


可以将数据写入mq中,然后从mq中慢慢写入数据库,主流的mq比如kafka,rocketmq横向扩张都很方便


ksfzhaohui


主要通过架构设计来减少高并发对数据库的压力;

比如 在数据库和应用程序之间,增加 DAL层,通过代理,连接池等,保证数据库与业务程序由一定的缓冲和关系梳理;

在数据库前面,加一个缓存层,让大部分数据访问,都直接在缓存层获取数据,不用访问到后端的MySQL数据库;


分享到:


相關文章: