• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

小贝_mysql 存储引擎及事宜概念_mysql

mysql 搞代码 7年前 (2018-06-08) 153次浏览 已收录 0个评论

小贝_mysql 存储引擎及事务概念

存储引擎及事务概念

简要:
1、什么是存储引擎
2、什么是事务

 

一、存储引擎

通俗地讲就是存储和管理数据的方式

形象例子:

       某处地方的自行车管理员:李某,张某。每天都有很多人来存取自行车。李某的管理方式是: 车主自行存放,李某也不记录对方存的是什么车。取车时则要交管理费。也不检查取的是否是对方自己的车。相反,张某,则在车主存放车时,记录存放人的特征以及对应车的信息。当人来取车时,张某还要小心核对,人与车的特征是否对应。

从上述例子可知:

a、从效率的角度来看: 李某比张某快,因为其不用进行校对

b、从安全性的角度来看: 张某比李某要安全,因为其进行了校对。

总结: 实际上,mysql的存储引擎也是这样工作,每种存储引擎都有自身的存取方式,因此在选择上,应该根据实际情况来定。

1、如何查看mysql的引擎

mysql> show engines;

2、常用的存储引擎myisam与innodb的区别

2.1、myisam: 批量插入速度快,不支持事务,表锁

        innodb:批量插入速度相对较慢,支持事务,行锁

 

二、事务

       通俗地理解,指一组操作,要么都成功执行,要么都不执行。

例如:

用户A给用户B转账500元

先分析下这个流程:

1、判断用户A的卡余额是否大于500元,否则,则无法进行转账操作

2、在满足大于500元的基础上,用户A给用户B进行转账

3、转账操作成功,则用户A的卡余额减去500元,用户B加上500元

用程序描述下这个过程

</pre><p><pre name="code" class="php"><?php $userA = $momeyA; $userB = $momeyB; if( $moneyA < 500 ) { return false; } $sqlA = "update user set money=money-500 where name='userA'";   //步骤A $resultA = $db->query($sqlA); if( $resultA ) { $sqlB = "update user set money=money+500 where name='userB'"; //步骤B $resultB = $db->query($sqlB);  if( $resultB ) {  return true; }else { $sqlA = "update user set money=money+500 where name='userA'"; //步骤C $resultA = $db->query($sqlA); return false; } } $sqlA = "update user set money=money+500 where name='userA'"; //步骤D $resultA = $db->query($sqlA); return false; ?>


从事务的角度看:

1、在转账过程中,出现有误,则该错误对双方而言,是没有影响的。即不可能因为某个错误,导致用户A白白减少500,而用户B莫名其妙多了500

2、在转账过程中,用户A是不可能看到自己的卡余额减下500,而用户B也是无法看到自己增加500元,因为转账操作还未结束。

3、单单从这个过程,用户A与用户B的总金额是不变的。只不过是一方减少,另一方增加

总结下事务的几个特性

a、 原子性:一组操作,要么都成功执行,要么都不执行

b、 隔离性:在所有的操作没有执行完毕之前,其它会话不能够看到中间改变的过程

c、 一致性:事务发生前和发生后,数据的总额依然匹配

d、 持久性:事务产生的影响不能够撤销


The quieter you become,the more you are able to hear!

版权声明:本文为博主原创文章,未经博主允许不得转载。

欢迎大家阅读《小贝_mysql 存储引擎及事宜概念_mysql》,跪求各位点评,by 搞代码


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:小贝_mysql 存储引擎及事宜概念_mysql

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址