在学习的过程中,看到创建时间是1490924160000,怎么看都不太想年月日分秒组成的,于是问了下人,才知道原来是时间戳。
1.什么是时间戳?
Unix时间戳,是一种时间表达方式,定义为从格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数,Unix时间戳不仅被使用在Unix系统,类Unix系统中,很多其他操作系统也被广泛采用。
2.优点?
优点:在一张表上加上时间戳字段,并做索引,可以比较好的得到表写入的顺序,基本上也可以保证唯一性。
解释:这是别人写的一个解释,觉的可以形象的解释上面一句话
我们一定会碰到这样的情况:银行A与银行B几乎同时打开你的账户并看到你的账户上原有1000元存款,然后两家银行都想在你的账户上加上500元存款。那么,银行A便将1000元改成1500元,同时,银行B也将1000元改成了1500元。这样就糟糕了!最后,你的银行账户上最后只有1500元而不是理应的2000元,等于白白损失了500元!这就是在没有锁定数据的情况下修改造成的严重问题。然而,我们可以通过时间戳来巧妙解决这个问题。
我们来看思路:
- 在银行account表中建立时间戳字段timestamp,设定为文本类型varchar。
- 当银行A读取account表中的存款字段时,同时也读取时间戳字段,比如123456。
- 当银行A修改完存款数值后,进行存盘操作时,将先前读取的时间戳123456与当时表中的时间戳进行一次对比,如果一致,那么允许存盘,然后生成一个新的时间戳比如456789替换表中原有的时间戳123456。
这样做会带来什么好处呢?