阿里巴巴的开发手册中 1.5.0的版本 2019-06-19发布
SQL语句规约中第七条
禁止使用存储过程 难以调用和扩展性 更没有移植性
个人理解:存储过程实质就是一个函数 你调用函数的时候 可以进行传参,你可以把需要缓存下来的sql放到这个存储过程的方程式中间 如果通过程序来去调用存储过程的使用,暂时没有了解,不过个人很久之前写过一次存储过程,其实实际的去了解到存储过程的话,他其实并不难,之前写过一个MySQL的定时删除过期数据 ,业务场景是 我们没过一段时间就会产生数据 需要实时的记录到我们的MySQL的数据库,后期会让Hadoop去MySQL中间去抽取数据,时间久了的话 MySQL就会冗余大量的过期数据。当时自己设想的方案是在在MySQL中创建一个定时的任务调度 每天在指定时间去调用这个任务 这个任务就写一个存储过程,里面放一个DELETE的sql。判断条件是指定的时间字段小于系统的时间减三十天的条件,就认为他是一个过期数据 就删除。
第一步:需要在MySQL的配置文件中开启任务调度的配置,如果这个MySQL的搭建是你个人搭建的,你就应该会对这个MySQL的配置文件非常的了解。只需要在配置文件中添加一行开启任务调度的话即可。
第二步:编写DELETE的删除过期数据的sql。然后百度一下存储过程的语法 将这个sql放在存储过程的表达式中。
第三步:创建一个任务调度,中间可以配置一系列的参数。我们可以称之为一个定时的任务调度。每天都回去调这个任务。然后任务去调用这个存储过程。
下面是这个定时删除过期数据的全部语句
最后:个人总结存储过程没必要你个人理解和使用的非常熟练 在某些业务需求下如果真的要使用到了存储过程你能写出来,个人感觉就已经足够了。我们不能以能不能写存储过程来去判断你这个人的sql能力的强弱。Mysql中也会有许多的函数和类似与java代码相关的。但是你还是会基本上用不到这个东西。Sql的能力需要在完全满足业务需求就已经可以了