给数据库减负的八个思路

3.数据库优化

=======

很多时候程序跑得慢,不是因为设备落后,而是因为数据库 SQL 写的太差劲。

要解决海量数据的问题,数据库优化肯定也是不可避免的。一般来说,我们可以从 SQL 优化、表结构优化、以及数据库分区分表等多个方面来对数据库进行优化。数据库优化其实也是一门巨大的学问,松哥以后看有时间写个连载和大家仔细聊聊这个话题。

4.热点数据分离

========

数据库中的数据,虽然是海量数据,但是这些数据并不见得所有数据都是活跃数据,例如用户注册,有的用户注册完就消失的无影无踪了,而有的用户则在不停的登录,因此,对于这两种不同的用户,我们可以将活跃用户分离出来,在主要操作的数据表中只保存活跃用户数据。每次用户登录,先去主表中查看有没有记录,有的话,直接登录,没有的话,再去查看其他表。

通过判断用户在某一段时间内的登录次数,就可以很快分离出热点数据。

5.合并数据库操作

=========

这个方案的宗旨其实是减少数据库操作的次数,例如多次插入操作,我们可以合并成一条 SQL 搞定。多个不同条件的查询,如果条件允许的话,也可以合并成为一个查询,尽量减少数据库的操作,减少在网络上消耗,同时也降低数据库的压力。

6.数据库读写分离

=========

数据库的读写分离其实松哥在之前的 MyCat 中也和大伙聊过了(MyCat 系列),读写分离之后,一方面可以提高数据库的操作效率,另一方面也算是对数据库的一个备份。这一块的具体操作大家可以参考松哥前面的文章。

7.分布式数据库

========

数据库读写分离之后,无形中增大了代码的复杂度,所以一般还需要借助分布式数据库中间件,这样可以有效提高数据库的弹性,可以方便的随时为数据库扩容,同时也降低代码的耦合度。

8.NoSQL 和 Hadoop

================

另外,引入 NoSQL 和 Hadoop 也是解决方案之一。NoSQL 突破了关系型数据库中对表结构、字段等定义的条条框框,使用户可以非常灵活方便的操作,另外 NoSQL 通过多个存储块存储数据的特点,使得天然具备操作大数据的优势(快)。不过,老实说,NoSQL 目前还是在互联网项目中比较常见,在传统的企业级应用中还是比较少见。

Hadoop 就不必说了,大数据处理利器。

很多时候技术和架构只是一个工具,所有的东西都摆在你面前,关键是如何把这些东西组合在一起,使之产生最大化收益,这就需要大家慢慢琢磨,松哥后面也尽量和大家多分享一些这方面的经验。

好了,简单的从 8 个方面和大家聊一聊这个问题,大家在工作中有没有遇到类似问题呢?你都是怎么处理的?欢迎留言讨论。

参考资料:

[1] 韩路彪.看透Spring MVC:源代码分析与实践[M].北京:机械工业出版社,2015.

640?wx_fmt=gif

IntelliJ IDEA 2019 从入门到癫狂 图文教程

Spring Boot 邮件发送的 5 种姿势!

2019 Java 全栈工程师进阶路线图,一定要收藏!

为了帮助前后端分离的新手,我做了一次大胆的尝试!

公司倒闭 1 年了,而我当年的项目上了 GitHub 热榜

Spring Boot 打包成的可执行 jar ,为什么不能被其他项目依赖?

分布式数据库如何实现主键全局自增?

前后端分离时代,Java 程序员的变与不变!
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

最后

分享一套我整理的面试干货,这份文档结合了我多年的面试官经验,站在面试官的角度来告诉你,面试官提的那些问题他最想听到你给他的回答是什么,分享出来帮助那些对前途感到迷茫的朋友。

面试经验技巧篇
  • 经验技巧1 如何巧妙地回答面试官的问题
  • 经验技巧2 如何回答技术性的问题
  • 经验技巧3 如何回答非技术性问题
  • 经验技巧4 如何回答快速估算类问题
  • 经验技巧5 如何回答算法设计问题
  • 经验技巧6 如何回答系统设计题
  • 经验技巧7 如何解决求职中的时间冲突问题
  • 经验技巧8 如果面试问题曾经遇见过,是否要告知面试官
  • 经验技巧9 在被企业拒绝后是否可以再申请
  • 经验技巧10 如何应对自己不会回答的问题
  • 经验技巧11 如何应对面试官的“激将法”语言
  • 经验技巧12 如何处理与面试官持不同观点这个问题
  • 经验技巧13 什么是职场暗语

面试真题篇
  • 真题详解1 某知名互联网下载服务提供商软件工程师笔试题
  • 真题详解2 某知名社交平台软件工程师笔试题
  • 真题详解3 某知名安全软件服务提供商软件工程师笔试题
  • 真题详解4 某知名互联网金融企业软件工程师笔试题
  • 真题详解5 某知名搜索引擎提供商软件工程师笔试题
  • 真题详解6 某初创公司软件工程师笔试题
  • 真题详解7 某知名游戏软件开发公司软件工程师笔试题
  • 真题详解8 某知名电子商务公司软件工程师笔试题
  • 真题详解9 某顶级生活消费类网站软件工程师笔试题
  • 真题详解10 某知名门户网站软件工程师笔试题
  • 真题详解11 某知名互联网金融企业软件工程师笔试题
  • 真题详解12 国内某知名网络设备提供商软件工程师笔试题
  • 真题详解13 国内某顶级手机制造商软件工程师笔试题
  • 真题详解14 某顶级大数据综合服务提供商软件工程师笔试题
  • 真题详解15 某著名社交类上市公司软件工程师笔试题
  • 真题详解16 某知名互联网公司软件工程师笔试题
  • 真题详解17 某知名网络安全公司校园招聘技术类笔试题
  • 真题详解18 某知名互联网游戏公司校园招聘运维开发岗笔试题

资料整理不易,点个关注再走吧
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!
解18 某知名互联网游戏公司校园招聘运维开发岗笔试题

[外链图片转存中…(img-S5S9iMWz-1712506220527)]

资料整理不易,点个关注再走吧
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!

  • 22
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
DBA(数据库管理员)的工作负担通常很重,因此为了减轻他们的压力,可以采取以下几个方面的措施: 1. 自动化和自动运维:通过引入自动化工具和脚本来自动化日常的重复任务,如备份恢复、性能监控、数据库巡检等,可以大大减轻DBA的工作负担,使其更好地专注于核心的数据库管理工作。 2. 资源的有效规划和管理:对数据库环境进行合理的规划和管理,确保合理的资源分配和利用。这样可以避免资源浪费和过度部署,提高DBA的工作效率并减轻工作压力。 3. 合理的权限管理:通过细化和规范的权限管理,合理控制用户对数据库的访问权限,减少非DBA的人员对数据库的干预,并降低DBA的维护负担。 4. 提供培训和技术支持:为DBA提供相关的培训和技术支持,使其能够不断学习和更新自己的知识和技能,提高工作效率和技术水平。此外,建立一个良好的技术支持体系,使DBA可以及时获得帮助和支持,解决工作中遇到的问题。 5. 合理的工作安排和分配:根据实际情况合理安排和分配DBA的工作任务,避免过度的工作压力和超负荷工作,保持工作的稳定性和持续性。 总之,要给DBA减负,需要通过自动化、规划、权限管理、培训和技术支持、合理的工作安排等综合措施,提高工作效率,减少重复劳动和工作压力,为DBA创造一个良好的工作环境。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值