【概念篇】嘛是幂等性?
【引言】
今天被问到一个问题,数据库中哪些操作具有幂等性。恩?当时听了很迷瞪,平时管理数据库,一些操作
也没碰到幂等性这个说法啊。鉴于此,今天学习下幂等性是个嘛?!
【大纲】
幂等性是个啥?
幂等性有什么用?
怎样保证幂等性?
幂等性有啥不足?
一、嘛是幂等性?
幂等(
)是一个数学与计算机学概念,常见于抽象代数中。
幂等函数,或幂等方法,是指可以使用相同参数重复执行,并能获得相同结果的函数。这些函数不会影响
系统状态,也不用担心重复执行会对系统造成改变。
幂等性衍生到软件工程中
它的语义是指
函数
接口可以使用相同的参数重复执行
不应该影响系统状态
也不会对系统造成改变。
在编程中,一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。第一次请求的
时候对资源产生了副作用,但是以后的多次请求都不会再对资源产生副作用。这里的副作用是不会对结果
产生破坏或者产生不可预料的结果。
中对幂等性的定义是:一次和多次请求某一个资源对于资源本身应该具有同样的结果(网络超时
等问题除外)。
总的来说,幂等性是指:
任意多次执行对资源本身所产生的影响均与一次执行的影响相同。
!"#$%&
'()*#+$,+$
幂等性:就是用户对于同一操作发起的一次请求或者多次请求的结果是一致的,不会因为多次点击(调
用)而产生了副作用。即幂等性
-
多次执行结果一致
.
无副作用。
举例:
数据库
/0
操作:
查询(
)方法本身就是幂等性的,虽然多次执行可能返回结果不一致,但是没有任何副作用。
插入
!%
和修改
!$%
方法是非幂等性的,需要通过机制在需要的场景处理以确保多次执行无副作用。
删除(
)执行一次或多次都是结果为空(即结果一致),并且无副作用,所以在根据主键
1/
删除可
以认为是(伪)幂等性的,根据非主键删除的如果多次执行无副作用(都是把数据删除),也可以认为是
(伪)幂等性。
评论