Java岗大厂面试百日冲刺 – 日积月累,每日三题【Day39】—— 数据库6

大家好,我是陈哈哈,北漂五年。相信大家和我一样,,作为一名资深Java选手,深知面试重要性,接下来我准备用100天时间,基于Java岗面试中的高频面试题,以的形式,带你过一遍热门面试题及恰如其分的解答。

一路走来,随着问题加深,发现不会的也愈来愈多。但底气着实足了不少,相信不少朋友和我一样,日积月累才是最有效的学习方式!想起高三时一个同学的座右铭:共勉(juan)。

课间休息,又来秀一下来自咱们群里同学的搬砖工地,坐标:/strong>。


面试题2:什么是存储过程哪些优缺点/h1>

存储过程(Procedure)是,一组为了完成特定功能的,它存储在数据库中,一次编译后永久有效,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。

优点

  • 我们可以使用存储过程来实现可被多条SQL的业务逻辑,存储过程有助于减少在许多应用程序中重复相同逻辑的工作。
  • 数据库管理员可以为仅访问特定存储过程的应用程序授予适当的特权,而无需在基础表上授予任何特权。
  • 如果某一操作包含大量的代码或分别被多次执行,那么存储过程要比批处理的执行速度快很多。因为的。在首次运行一个存储过程时查询,优化器对其进行分析优化,并且给出最终被存储在系统表中的执行计划。而批处理的Transaction-SQL语句在每次运行时都要进行编译和优化,速度相对要慢一些。

缺点

  • 每种数据库的存储过程不尽相同,如果MySQL使用大量的存储过程,当你们想切换成Oracle时,就会发现是多么的不切实际。
  • 如果存储过程中逻辑比较复杂,包含多条SQL,则,执行时间也会很长,要有所准备。
  • 调试存储过程很困难。不幸的是,MySQL没有像其他企业数据库产品(如Oracle和SQL Server)那样提供任何调试存储过程的功能。存储过程可能会封装很多业务细节,可能会导致开发人员难以理解业务,试想一下一条前辈留下来的几百行的存储过程,老板突然让你改实现逻辑,你懵逼不/li>
  • 开发和维护存储过程可能非专业人员搞不定,新手很容易留坑或者浪费很多时间。

普通业务逻辑尽量不要使用存储过程,定时性的或函数可以根据团队资源情况采用存储过程处理。存储过程可以快速解决问题,但是,它有时会约束软件的架构,约速程序员的思维,在你的系统没有性能问题时不建议用存储过程。如果你要完成的功能只是一次或有限次的工作,如数据订正、数据迁移等等,存储过程也可以拿上用场。

如果你的系统很小,并且有50%的开发人员熟练掌握PL/SQL,人员结构稳定,那存储过程可以减少很多代码量,并且性能不错。当系统变复杂了,开发人员多了,存储过程的弊端就会呈现,这时你需要痛下决心了。


声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年7月27日
下一篇 2021年7月27日

相关推荐